------- Comment #1 from lucier at math dot purdue dot edu 2006-05-31 04:42 ------- Subject: Re: New: ICE building darwin-crt2.c in 64-bit darwin bootstrap
I ran cc1 a bit through gdb; perhaps real.c has been miscompiled. [lindv2:mainline/objdir64/gcc] lucier% gdb /Users/lucier/programs/gcc/ mainline/objdir64/./gcc/cc1 GNU gdb 6.3.50-20050815 (Apple version gdb-477) (Sun Apr 30 20:06:22 GMT 2006) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "powerpc-apple-darwin"...Reading symbols for shared libraries .. done Breakpoint 1 at 0x44e55c: file ../../gcc/diagnostic.c, line 642. Breakpoint 2 at 0x44e3e0: file ../../gcc/diagnostic.c, line 586. Breakpoint 3 at 0x906f4 Breakpoint 4 at 0xf4e38 (gdb) run -quiet -v -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../ include -I./../intl -I../../gcc/../libcpp/include -I../../gcc/../ libdecnumber -I../libdecnumber -iprefix /Users/lucier/programs/gcc/ mainline/objdir64/gcc/../lib/gcc/powerpc-apple-darwin8.6.0/4.2.0/ - isystem /Users/lucier/programs/gcc/mainline/objdir64/./gcc/include - D__DYNAMIC__ -DIN_GCC -isystem /pkgs/gcc-4.2.0/powerpc-apple- darwin8.6.0/include -isystem /pkgs/gcc-4.2.0/powerpc-apple- darwin8.6.0/sys-include -isystem ./include ../../gcc/config/darwin- crt2.c -feliminate-unused-debug-symbols -fPIC -quiet -dumpbase darwin- crt2.c -auxbase-strip crt2.o -g -O2 -O2 -W -Wall -Wwrite-strings - Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition - version -o /var/tmp//ccti7FKQ.s Starting program: /Users/lucier/programs/gcc/mainline/objdir64/gcc/ cc1 -quiet -v -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../ include -I./../intl -I../../gcc/../libcpp/include -I../../gcc/../ libdecnumber -I../libdecnumber -iprefix /Users/lucier/programs/gcc/ mainline/objdir64/gcc/../lib/gcc/powerpc-apple-darwin8.6.0/4.2.0/ - isystem /Users/lucier/programs/gcc/mainline/objdir64/./gcc/include - D__DYNAMIC__ -DIN_GCC -isystem /pkgs/gcc-4.2.0/powerpc-apple- darwin8.6.0/include -isystem /pkgs/gcc-4.2.0/powerpc-apple- darwin8.6.0/sys-include -isystem ./include ../../gcc/config/darwin- crt2.c -feliminate-unused-debug-symbols -fPIC -quiet -dumpbase darwin- crt2.c -auxbase-strip crt2.o -g -O2 -O2 -W -Wall -Wwrite-strings - Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition - version -o /var/tmp//ccti7FKQ.s Reading symbols for shared libraries .+ done Breakpoint 3 at 0x42695718 Breakpoint 4 at 0x426f9e58 ignoring nonexistent directory "/pkgs/gcc-4.2.0/powerpc-apple- darwin8.6.0/include" ignoring nonexistent directory "/pkgs/gcc-4.2.0/powerpc-apple- darwin8.6.0/sys-include" ignoring duplicate directory "./include" ignoring nonexistent directory "/Users/lucier/programs/gcc/mainline/ objdir64/gcc/../lib/gcc/powerpc-apple-darwin8.6.0/4.2.0/include" ignoring nonexistent directory "/Users/lucier/programs/gcc/mainline/ objdir64/gcc/../lib/gcc/powerpc-apple-darwin8.6.0/4.2.0/../../../../ powerpc-apple-darwin8.6.0/include" ignoring nonexistent directory "/usr/local/include" ignoring nonexistent directory "/pkgs/gcc-4.2.0/include" ignoring nonexistent directory "/pkgs/gcc-4.2.0/lib/gcc/powerpc-apple- darwin8.6.0/4.2.0/include" ignoring nonexistent directory "/pkgs/gcc-4.2.0/powerpc-apple- darwin8.6.0/include" ignoring duplicate directory "." ignoring duplicate directory "../../gcc/." #include "..." search starts here: #include <...> search starts here: . ../../gcc ../../gcc/../include ./../intl ../../gcc/../libcpp/include ../../gcc/../libdecnumber ../libdecnumber /Users/lucier/programs/gcc/mainline/objdir64/./gcc/include /usr/include /System/Library/Frameworks /Library/Frameworks End of search list. GNU C version 4.2.0 20060530 (experimental) (powerpc-apple-darwin8.6.0) compiled by GNU C version 4.0.1 (Apple Computer, Inc. build 5341). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x00000000423ac000 0x00000000007b7378 in sticky_rshift_significand (r=0x40c48118, a=0x40c48118, n=4294967295) at ../../gcc/real.c:179 179 sticky |= a->sig[i]; (gdb) stack Undefined command: "stack". Try "help". (gdb) where #0 0x00000000007b7378 in sticky_rshift_significand (r=0x40c48118, a=0x40c48118, n=4294967295) at ../../gcc/real.c:179 #1 0x00000000007bddf0 in round_for_format (fmt=0x40c49c38, r=0x40c48118) at ../../gcc/real.c:2372 #2 0x00000000007be4e8 in real_convert (r=0x40c48118, mode=DFmode, a=0x40c48118) at ../../gcc/real.c:2472 #3 0x00000000007bcec8 in real_from_integer (r=0x40c48118, mode=DFmode, low=1, high=0, unsigned_p=0) at ../../gcc/real.c:2066 #4 0x00000000004a1ac0 in init_emit_once (line_numbers=1) at ../../ gcc/emit-rtl.c:5194 #5 0x00000000008a8444 in backend_init () at ../../gcc/toplev.c:1825 #6 0x00000000008a8898 in do_compile () at ../../gcc/toplev.c:1966 #7 0x00000000008a8974 in toplev_main (argc=44, argv=0x7fffeffffef68) at ../../gcc/toplev.c:2002 #8 0x00000000000f3508 in main (argc=44, argv=0x7fffeffffef68) at ../../gcc/main.c:35 (gdb) list 174 unsigned int i, ofs = 0; 175 176 if (n >= HOST_BITS_PER_LONG) 177 { 178 for (i = 0, ofs = n / HOST_BITS_PER_LONG; i < ofs; ++i) 179 sticky |= a->sig[i]; 180 n &= HOST_BITS_PER_LONG - 1; 181 } 182 183 if (n != 0) (gdb) p a $1 = (const struct real_value *) 0x40c48118 (gdb) p *a $2 = { cl = 1, decimal = 0, sign = 0, signalling = 0, canonical = 0, uexp = 1, sig = {0, 0, 9223372036854775808} } (gdb) p i $3 = 3065820 (gdb) info args r = (struct real_value *) 0x40c48118 a = (const struct real_value *) 0x40c48118 n = 4294967295 (gdb) info locals sticky = 18446744073709551615 i = 3065820 ofs = 67108863 (gdb) p *r $4 = { cl = 1, decimal = 0, sign = 0, signalling = 0, canonical = 0, uexp = 1, sig = {0, 0, 9223372036854775808} } (gdb) p *a $5 = { cl = 1, decimal = 0, sign = 0, signalling = 0, canonical = 0, uexp = 1, sig = {0, 0, 9223372036854775808} } (gdb) up #1 0x00000000007bddf0 in round_for_format (fmt=0x40c49c38, r=0x40c48118) at ../../gcc/real.c:2372 2372 r->sig[0] |= sticky_rshift_significand (r, r, shift); (gdb) info locals shift = -1 p2 = 0 np2 = 192 i = 32 w = 128 sticky = 1117819808 guard = 255 'ÿ' lsb = 255 'ÿ' emin2m1 = 0 emax2 = 0 __FUNCTION__ = "round_for_format" (gdb) info args fmt = (const struct real_format *) 0x40c49c38 r = (struct real_value *) 0x40c48118 (gdb) p *fmt $6 = { encode = 0, decode = 0, b = 0, log2_b = 0, p = 0, pnan = 0, emin = 0, emax = 0, signbit_ro = 0, signbit_rw = 0, has_nans = 0 '\0', has_inf = 0 '\0', has_denorm = 0 '\0', has_signed_zero = 0 '\0', qnan_msb_set = 0 '\0' } (gdb) p *r $7 = { cl = 1, decimal = 0, sign = 0, signalling = 0, canonical = 0, uexp = 1, sig = {0, 0, 9223372036854775808} } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27814