From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8187 invoked by alias); 24 Jul 2010 18:14:50 -0000 Received: (qmail 8124 invoked by uid 48); 24 Jul 2010 18:14:38 -0000 Date: Sat, 24 Jul 2010 18:14:00 -0000 Message-ID: <20100724181438.8123.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug fortran/44945] [4.6 Regression] Wrong decl for module vars / FAIL: gfortran.dg/char_array_structure_constructor.f90 In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "burnus at gcc dot gnu dot org" 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: 2010-07/txt/msg02659.txt.bz2 ------- Comment #25 from burnus at gcc dot gnu dot org 2010-07-24 18:14 ------- (In reply to comment #21) > In my opinion revision 162487 is only a partial fix of the problem. If I split > a modified test case in two files: [...] I still get [...] Bus error (In reply to comment #24) > Look at -fdump-tree-original-uid dumps and see if you find the > same decl with two different UIDs. I bet you will. One does. The problem is that when the module is not available. The variable "c" (of example in comment 21) created for the main program "char_array_structure_constructor" but if one searches for the symbol (in gfc_get_symbol_decl) via gsym = gfc_find_gsymbol (gfc_gsym_root, sym->module); the result is NULL as the only gsym which exists in gfc_gsym_root is the one for "char_array_structure_constructor" as there is none for the module. One should create a "fake" gsym for modules, if the module does not exist, and put there the variables, functions, and type declarations - such that they can be found if needed. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44945