This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug lto/42665] Internal compiler exception in with gfortran when using -fwhole-program -flto -fopenmp
- From: "jjcogliati-r1 at yahoo dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Jan 2010 17:15:29 -0000
- Subject: [Bug lto/42665] Internal compiler exception in with gfortran when using -fwhole-program -flto -fopenmp
- References: <bug-42665-12362@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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=<value optimized out>, 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=<value optimized out>, 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=<value optimized out>, 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