From patchwork Sat Feb 4 13:39:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andre Vehreschild X-Patchwork-Id: 724081 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3vFvxd1tKSz9s75 for ; Sun, 5 Feb 2017 00:40:20 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="FfZkL/sy"; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:mime-version:content-type; q=dns; s= default; b=lFrorgMI/x6We1hphfQp3alszZ5C6fKTBNJvyl0CDgPG22WU090w6 Nno5ZnXWT3SZplHDP/rOWYHXwt/mOoAKPZlxl37cLYfcAQ04b657hqKNxDAB+BY9 UidnUYR5PR/lBOeCj28uT2kn/vb1spi073gNLohpPZWw3xf3buETFs= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:mime-version:content-type; s= default; bh=wgd7kGpuonzKh2WrWnZZEbWdF/w=; b=FfZkL/syg6nh8TDuoAnz zAocP1UjePTLnV+J0U+3juJNaiPUegSWYi1U+tRdrH1E6l3CvMLbNB8NeaRpDFqW 7N8XO7/KtqkwAs3D2gW3nk/mybWbCSXtqFdvgwlZaq/D4PdZ3J6MudbOf1nGbRNv c+7OqRH66skLX+5+hodVV+4= Received: (qmail 39601 invoked by alias); 4 Feb 2017 13:40:12 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 39582 invoked by uid 89); 4 Feb 2017 13:40:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=3.8 required=5.0 tests=AWL, BAYES_50, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, RCVD_IN_SORBS_WEB, SPF_PASS autolearn=no version=3.3.2 spammy=Hx-languages-length:1427, vehregccgnuorg, vehre@gcc.gnu.org, sk:vehre@g X-Spam-User: qpsmtpd, 2 recipients X-HELO: mout.gmx.net Received: from mout.gmx.net (HELO mout.gmx.net) (212.227.17.20) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 04 Feb 2017 13:40:01 +0000 Received: from vepi2 ([84.63.213.96]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MEbYb-1cgL9Y3nR3-00FifX; Sat, 04 Feb 2017 14:39:58 +0100 Date: Sat, 4 Feb 2017 14:39:56 +0100 From: Andre Vehreschild To: GCC-Patches-ML , GCC-Fortran-ML Subject: [PATCH, Fortran, pr79335, v1] [7 Regression] Conditional jump or move depends on uninitialised in value get_scalar_to_descriptor_type(tree_node*, symbol_attribute) (trans-expr.c:53) Message-ID: <20170204143956.46b1d822@vepi2> MIME-Version: 1.0 X-UI-Out-Filterresults: notjunk:1; V01:K0:NFp45CnaT1s=:Fr4/M+VHzVZyUXsn804u16 k4YXUL6b15K6N93JdWQsE1UO4SnRJqdtjvAupyvItvY1RZDbuzE1F2i0uaTjfBE5tJhhzum6d DO2Uzt/y9LWuAsfXm7HtY6Gv4oQsA/0KxhBGjjBSOskaYyqySzx03F4xcZy0xuV8rLW5imCok UvpxlQUo1G7CDf/3dvkVG89EcHhXlmN0BBmcGDULhjlmUGTt6eHmu62wgxqYBBEtHsiAQMZsK y6unr9DN1+oc+5gHD56RagTyGQi1VMnnQa3gtu6vDUpFWF2BpgLU2l16Flu6ro4h6JAHy11Pu WyhPegF9iGDfgKG4sw49l+vY1S0TNPBb/jV2Qz09851dMzRfTvIfstDmh/S2GYgkmRlIFubEg adH/OGGXDHtrnwbRQesPqwnHZKQPWe3uBMmvXRel81r6WrvedXRVuE3NqP4PgKkwlbyyrcIKh oCZnr7ulisp4IN0kKFKSuhP9UqfX3KzdLkBjApG+M8g8vKD23kubwTI1d4bZ+nUQW0mGDyw/3 /Lz7e99IlLeleZGJYTJjixjGjrSNNRCmtD+ww2OzyNbv+bJz4STFgxGnlvuZH4xptqiFp1V4b iy4vppZAmwxepJ9jUyb+YrOThPZGGSyt+PNP27BTVriP5dfdP3n+dLST8OaSC2LwYpCo6lAjf Itl7aWpviYCEZk/b0Xbg+/uGtczhRk6K3ch+q43HJOPIJq4F2BJLZ1ipQ5hge/sT76/c/8JR5 nkLF7eQ4y599h8zMRoiLQaNxWSts8BEU5QLAmkhZIhdlw+ZLeQp0QjEUq4Q= Hi all, attached patch fixes the access of uninitialized data. Thanks Martin for analyzing this so far. The symbol_attributes on the stack was used without initializing it from the symbol's attributes. Bootstraps and regstests ok on x86_64-linux-gnu/f25. Ok for trunk? Regards, Andre diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 3e54e80..41b36a5 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -5128,6 +5128,16 @@ generate_coarray_sym_init (gfc_symbol *sym) else reg_type = GFC_CAF_COARRAY_STATIC; + /* Compile the symbol attribute. */ + if (sym->ts.type == BT_CLASS) + { + attr = CLASS_DATA (sym)->attr; + /* The pointer attribute is always set on classes, overwrite it with the + class_pointer attribute, which denotes the pointer for classes. */ + attr.pointer = attr.class_pointer; + } + else + attr = sym->attr; gfc_init_se (&se, NULL); desc = gfc_conv_scalar_to_descriptor (&se, decl, attr); gfc_add_block_to_block (&caf_init_block, &se.pre);