From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24545 invoked by alias); 11 Jan 2010 17:15:39 -0000 Received: (qmail 24487 invoked by uid 48); 11 Jan 2010 17:15:29 -0000 Date: Mon, 11 Jan 2010 17:15:00 -0000 Message-ID: <20100111171529.24486.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug lto/42665] Internal compiler exception in with gfortran when using -fwhole-program -flto -fopenmp In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "jjcogliati-r1 at yahoo dot com" 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-01/txt/msg01245.txt.bz2 ------- Comment #9 from jjcogliati-r1 at yahoo dot com 2010-01-11 17:15 ------- My hunch, (and I could be wrong since my knowledge of gcc's tree code was zero as of Friday morning) is that it is trying to find the array's min and max size, but that only the min location is available, and that the max value is undefined. Since this is fortran code, there are a number of places that I do that. Is that plausible, and if so, how would I check this hunch? Getting permission for me to get you the full code would involve a lot of bureaucracy (weeks to months). (gdb) p type->base $32 = {code = ARRAY_TYPE, side_effects_flag = 0, constant_flag = 0, addressable_flag = 0, volatile_flag = 0, readonly_flag = 0, unsigned_flag = 0, asm_written_flag = 0, nowarning_flag = 0, used_flag = 0, nothrow_flag = 0, static_flag = 0, public_flag = 0, private_flag = 0, protected_flag = 0, deprecated_flag = 0, saturating_flag = 0, default_def_flag = 0, lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, visited = 0, packed_flag = 0, user_align = 0, spare = 0, address_space = 0} (gdb) list 3717 /* For array types hash their domain and the string flag. */ 3718 if (TREE_CODE (type) == ARRAY_TYPE 3719 && TYPE_DOMAIN (type)) 3720 { 3721 v = iterative_hash_hashval_t (TYPE_STRING_FLAG (type), v); 3722 v = visit (TYPE_DOMAIN (type), state, v, 3723 sccstack, sccstate, sccstate_obstack); 3724 } 3725 3726 /* Recurse for aggregates with a single element type. */ (gdb) where #0 iterative_hash_expr (t=0x7ffff1e96b70, val=154387133) at ../../gcc-4.5-20100107/gcc/tree.c:6592 #1 0x00000000005ee1fc in iterative_hash_gimple_type (type=0x7ffff1df3888, val=, sccstack=0x7fffffffda38, sccstate=0x126a440, sccstate_obstack=0x7fffffffd9e0) at ../../gcc-4.5-20100107/gcc/gimple.c:3713 #2 0x00000000005ee843 in visit (t=0x7ffff1df3888, state=0x126b4b0, v=1159414094, sccstack=0x7fffffffda38, sccstate=0x126a440, sccstate_obstack=0x7fffffffd9e0) at ../../gcc-4.5-20100107/gcc/gimple.c:3599 #3 0x00000000005ee276 in iterative_hash_gimple_type (type=0x7ffff1df37e0, val=, sccstack=0x7fffffffda38, sccstate=0x126a440, sccstate_obstack=0x7fffffffd9e0) at ../../gcc-4.5-20100107/gcc/gimple.c:3722 (gdb) down #2 0x00000000005ee843 in visit (t=0x7ffff1df3888, state=0x126b4b0, v=1159414094, sccstack=0x7fffffffda38, sccstate=0x126a440, sccstate_obstack=0x7fffffffd9e0) at ../../gcc-4.5-20100107/gcc/gimple.c:3599 3599 tem = iterative_hash_gimple_type (t, v, (gdb) down #1 0x00000000005ee1fc in iterative_hash_gimple_type (type=0x7ffff1df3888, val=, sccstack=0x7fffffffda38, sccstate=0x126a440, sccstate_obstack=0x7fffffffd9e0) at ../../gcc-4.5-20100107/gcc/gimple.c:3713 3713 v = iterative_hash_expr (TYPE_MAX_VALUE (type), v); (gdb) p type->type.minval $33 = (tree) 0x7ffff1d995c8 (gdb) p (type->type.minval)->base $34 = {code = INTEGER_CST, side_effects_flag = 0, constant_flag = 1, addressable_flag = 0, volatile_flag = 0, readonly_flag = 0, unsigned_flag = 0, asm_written_flag = 0, nowarning_flag = 0, used_flag = 0, nothrow_flag = 0, static_flag = 0, public_flag = 0, private_flag = 0, protected_flag = 0, deprecated_flag = 0, saturating_flag = 0, default_def_flag = 0, lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, visited = 0, packed_flag = 0, user_align = 0, spare = 0, address_space = 0} (gdb) p (type->type.maxval)->base $35 = {code = ERROR_MARK, side_effects_flag = 0, constant_flag = 0, addressable_flag = 0, volatile_flag = 0, readonly_flag = 0, unsigned_flag = 0, asm_written_flag = 0, nowarning_flag = 0, used_flag = 0, nothrow_flag = 0, static_flag = 0, public_flag = 0, private_flag = 0, protected_flag = 0, deprecated_flag = 0, saturating_flag = 0, default_def_flag = 0, lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, visited = 0, packed_flag = 0, user_align = 0, spare = 0, address_space = 0} -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42665