------- Comment #2 from hjl at lucon dot org 2007-12-20 17:45 ------- Created an attachment (id=14802) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14802&action=view) Dump files
Starting program: /export/build/gnu/gcc/build-ia64-linux/gcc/testsuite/gcc/a.out Program received signal SIGSEGV, Segmentation fault. 0x4000000000000751 in main () at /net/gnu-13/export/gnu/src/gcc/gcc/gcc/testsuite/gcc.dg/struct/wo_prof_global_var.c:22 22 p[i].a = p[i].b + 1; (gdb) p/x $pc $4 = 0x4000000000000751 (gdb) disass 0x4000000000000740 0x4000000000000752 Dump of assembler code from 0x4000000000000740 to 0x4000000000000752: 0x4000000000000740 <main+192>: [MII] shladd r15=r16,2,r0 0x4000000000000741 <main+193>: adds r16=1,r16;; 0x4000000000000742 <main+194>: add r14=r33,r15 0x4000000000000750 <main+208>: [MMI] add r15=r8,r15;; 0x4000000000000751 <main+209>: ldfs f6=[r14] End of assembler dump. (gdb) p/x $r14 $5 = 0x5f60 (gdb) "ldfs f6=[r14]" loads memory at r14 into FP register f6. It looks that -fipa-struct-reorg miscompiles the code. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34534