[Bug debug/41238] New: VTA: bootstrap failure, ICE in loc_cmp, at var-tracking.c:2456
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Sep 3 08:17:00 GMT 2009
This ICE breaks alpha bootstrap, it can be reproduced with (to be) attached
preprocessed source on a cross from x86_64-pc-linux-gnu to alpha-linux-gnu.
~/gcc-build-alpha/gcc/cc1 -quiet -O2 -g -mlong-double-128 libgcc2.i
../../../gcc-svn/trunk/libgcc/../gcc/libgcc2.c: In function '__divtc3':
../../../gcc-svn/trunk/libgcc/../gcc/libgcc2.c:1948:1: internal compiler error:
in loc_cmp, at var-tracking.c:2456
Please submit a full bug report,
(gdb) bt
#0 fancy_abort (file=0xae4ac0 "../../gcc-svn/trunk/gcc/var-tracking.c",
line=2456,
function=0xae5073 "loc_cmp") at ../../gcc-svn/trunk/gcc/diagnostic.c:727
#1 0x00000000008bf675 in loc_cmp (x=0xca67dd8, y=0xca77808)
at ../../gcc-svn/trunk/gcc/var-tracking.c:2456
#2 0x00000000008bf6bd in onepart_variable_different_p (var1=<value optimized
out>,
var2=<value optimized out>) at ../../gcc-svn/trunk/gcc/var-tracking.c:3932
#3 0x00000000008c8022 in variable_merge_over_cur (s1slot=0xca9b0b0,
data=<value optimized out>) at ../../gcc-svn/trunk/gcc/var-tracking.c:3037
#4 0x0000000000a26dd8 in htab_traverse_noresize (htab=<value optimized out>,
callback=0x8c7bd0 <variable_merge_over_cur>, info=0x7ffff827c7f0)
at ../../gcc-svn/trunk/libiberty/hashtab.c:750
#5 0x00000000008c13fc in dataflow_set_merge (dst=0xcac47f0, src=<value
optimized out>)
at ../../gcc-svn/trunk/gcc/var-tracking.c:3294
#6 0x00000000008cc632 in variable_tracking_main ()
at ../../gcc-svn/trunk/gcc/var-tracking.c:5462
(gdb) up
#1 0x00000000008bf675 in loc_cmp (x=0xca67dd8, y=0xca77808)
at ../../gcc-svn/trunk/gcc/var-tracking.c:2456
2456 gcc_assert (GET_MODE (x) == GET_MODE (y));
(gdb) p debug_rtx (x)
(value/s/u:TF 179 @0xca67dd8/0xca69328)
$1 = void
(gdb) p debug_rtx (y)
(value/s/u:DI 325 @0xca77808/0xca78118)
$2 = void
(gdb) up
#2 0x00000000008bf6bd in onepart_variable_different_p (var1=<value optimized
out>,
var2=<value optimized out>) at ../../gcc-svn/trunk/gcc/var-tracking.c:3932
3932 if (loc_cmp (lc1->loc, lc2->loc))
(gdb) p debug_variable (var1)
Program received signal SIGSEGV, Segmentation fault.
dump_variable (file=0x3365150860, var=0x0) at
../../gcc-svn/trunk/gcc/tree-dfa.c:273
273 if (TREE_CODE (var) == SSA_NAME)
The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received.
To change this behavior use "set unwindonsignal on"
Evaluation of the expression containing the function (debug_variable) will be
abandoned.
(ouch...)
Following patch is also needed to get that far on native alpha bootstrap:
Index: config/alpha/alpha.c
===================================================================
--- config/alpha/alpha.c (revision 151367)
+++ config/alpha/alpha.c (working copy)
@@ -7664,7 +7664,7 @@ alpha_does_function_need_gp (void)
pop_topmost_sequence ();
for (; insn; insn = NEXT_INSN (insn))
- if (INSN_P (insn)
+ if (NONDEBUG_INSN_P (insn)
&& ! JUMP_TABLE_DATA_P (insn)
&& GET_CODE (PATTERN (insn)) != USE
&& GET_CODE (PATTERN (insn)) != CLOBBER
--
Summary: VTA: bootstrap failure, ICE in loc_cmp, at var-
tracking.c:2456
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ubizjak at gmail dot com
GCC host triplet: x86_64-linux-gnu
GCC target triplet: alpha-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41238
More information about the Gcc-bugs
mailing list