From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11750 invoked by alias); 19 Feb 2011 13:08:40 -0000 Received: (qmail 11740 invoked by uid 22791); 19 Feb 2011 13:08:39 -0000 X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,KAM_STOCKGEN X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 19 Feb 2011 13:08:35 +0000 From: "burnus at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/44945] [4.6 Regression] Wrong decl for module vars / FAIL: gfortran.dg/char_array_structure_constructor.f90 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: fortran X-Bugzilla-Keywords: wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: burnus at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P4 X-Bugzilla-Assigned-To: pault at gcc dot gnu.org X-Bugzilla-Target-Milestone: 4.6.0 X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Sat, 19 Feb 2011 13:55:00 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2011-02/txt/msg02247.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44945 --- Comment #31 from Tobias Burnus 2011-02-19 13:08:26 UTC --- (In reply to comment #29) > A candidate fix for the PR Aha, you have taken the simple route of modifying trans-decl.c and not the whole module reading apparatus :-) I think the patch is OK, though I would do some reordering, e.g. "sym->module" is not needed as the whole block is enclosed in such a check. I also would move the block down into if (gsym && gsym->ns && gsym->type == GSYM_MODULE) which could be changed into if (!gsym || (gsym && gsym->ns && gsym->type == GSYM_MODULE)) And - gfc_find_symbol (sym->name, gsym->ns, 0, &s); + if (gsym) + gfc_find_symbol (sym->name, gsym->ns, 0, &s); And then placing the "if (gsym == NULL)" in the + else if (s == NULL) block. (In reply to comment #30) > The bus error reported in comment #21 has disappeared from my scope between > revisions 167584 and 167726;-( Ditto here, but looking at the dump, I see that the underlying issue is still present - and it is fixed by the patch. * * * I will do some more tests. Related to those whole-file DECL issues: I wonder why there are still differences between -flto and -fno-lto on Polyhedron (result is correct but runtimes are different) and for Jack (-O3 miscompilation of xplor-nih's slink.f and tenso.f, unless -fno-whole-file is used; -fno-inline-functions does not help).