https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63333
Bug ID: 63333 Summary: lto, 1to1 segmentation fault Product: gcc Version: 4.9.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto Assignee: unassigned at gcc dot gnu.org Reporter: a...@cloudius-systems.com A random change (adding a new virtual function) in a program produced this. I realize this is not sufficient to reproduce, but maybe this can jog someone's memory. If not, I can try to minimize. (gdb) bt #0 0x00007f2f900bd887 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007f2f900bef78 in __GI_abort () at abort.c:89 #2 0x00000000009eed13 in real_abort () at ../../gcc/diagnostic.c:1200 #3 diagnostic_action_after_output (context=context@entry=0x167a700 <global_diagnostic_context>, diagnostic=0x7fffb8503f60) at ../../gcc/diagnostic.c:447 #4 0x0000000000eede6e in diagnostic_report_diagnostic(diagnostic_context*, diagnostic_info*) () at ../../gcc/diagnostic.c:804 #5 0x00000000009eef5f in internal_error (gmsgid=gmsgid@entry=0xf8aafe "%s") at ../../gcc/diagnostic.c:1136 #6 0x0000000000697bdc in crash_signal (signo=11) at ../../gcc/toplev.c:339 #7 <signal handler called> #8 htab_hash_string (p=0x0) at ../../libiberty/hashtab.c:839 #9 0x0000000000569f9d in hash (r=<optimized out>) at ../../gcc/dwarf2out.c:7501 #10 find_slot (insert=INSERT, value=0x7fffb8504650, this=0x7fffb8504648) at ../../gcc/hash-table.h:505 #11 lookup_external_ref (map=..., die=die@entry=0x7f2f897f70f0) at ../../gcc/dwarf2out.c:7529 #12 0x0000000000569c44 in optimize_external_refs_1 (die=0x7f2f894957d0, map=map@entry=...) at ../../gcc/dwarf2out.c:7567 #13 0x0000000000aa0eff in optimize_external_refs_1(die_struct*, hash_table<external_ref_hasher, xcallocator>) () at ../../gcc/dwarf2out.c:7571 #14 0x0000000000aa0eff in optimize_external_refs_1(die_struct*, hash_table<external_ref_hasher, xcallocator>) () at ../../gcc/dwarf2out.c:7571 #15 0x0000000000e634a2 in optimize_external_refs(die_struct*) () at ../../gcc/dwarf2out.c:7621 #16 0x0000000000e63205 in output_comp_unit(die_struct*, int) () at ../../gcc/dwarf2out.c:8807 #17 0x0000000000561d12 in dwarf2out_finish (filename=<optimized out>) at ../../gcc/dwarf2out.c:24252 #18 0x0000000000e9664e in compile_file() () at ../../gcc/toplev.c:601 #19 0x0000000000e960e6 in do_compile () at ../../gcc/toplev.c:1917 #20 toplev_main(int, char**) () at ../../gcc/toplev.c:1995 #21 0x00007f2f900a9d65 in __libc_start_main (main=0xa1a5e0 <main(int, char**)>, argc=25, argv=0x7fffb8504b88, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffb8504b78) at libc-start.c:285 #22 0x0000000000e1365c in _start () In frame 9, die->die_id is zeroed.