------- Comment #1 from ro at gcc dot gnu dot org 2009-07-15 16:51 ------- I've rebuilt lto1 with just -g and re-run it under gdb. This is not a NULL-pointer dereference, but an improperly aligned pointer:
Starting program: /vol/gccsrc/obj/gcc-lto-20090709/11-gcc/gcc/testsuite/g++/lto1 -quiet -dumpbase cc0dayjK-cp_lto_20080709_0.o.lto.o -mcpu=v9 -auxbase-strip ./cc0dayjK-cp_lto_20080709_0.o.lto.ltrans.o -O0 -version -fltrans-output-list=/var/tmp//cc.caijK.ltrans.out -fmessage-length=0 -fno-wpa -fltrans ./cc0dayjK-cp_lto_20080709_0.o.lto.o -o /var/tmp//cccfaqkK.s [New LWP 1 ] warning: Lowest section in /lib/libdl.so.1 is .dynamic at 00000094 GNU GIMPLE (lto merged with rev 149291) version 4.5.0 20090706 (experimental) [lto revision 149403] (sparc-sun-solaris2.11) compiled by GNU C version 4.5.0 20090706 (experimental) [lto revision 149403], GMP version 4.2.1, MPFR version 2.3.2 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 GNU GIMPLE (lto merged with rev 149291) version 4.5.0 20090706 (experimental) [lto revision 149403] (sparc-sun-solaris2.11) compiled by GNU C version 4.5.0 20090706 (experimental) [lto revision 149403], GMP version 4.2.1, MPFR version 2.3.2 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Program received signal SIGSEGV, Segmentation fault. 0x00118ca8 in lto_read_decls (decl_data=0xe4ecd0, data=0xff1b036d, resolutions=0x0) at /vol/gcc/src/gcc-lto/gcc/lto/lto.c:179 1: x/i $pc 0x118ca8 <lto_read_decls+36>: ld [ %g1 + 8 ], %g2 (gdb) print/x $g1 $13 = 0xff1b036d I haven't yet started to investiate further: this is probably much easier for someone who's familiar with lto. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40754