This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/79342] [6 Regression] ICE in output_index_string, at dwarf2out.c:25635 with -gsplit-dwarf
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 02 Feb 2017 14:45:27 +0000
- Subject: [Bug debug/79342] [6 Regression] ICE in output_index_string, at dwarf2out.c:25635 with -gsplit-dwarf
- Auto-submitted: auto-generated
- References: <bug-79342-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79342
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Broken by
#0 hash_table<indirect_string_hasher, xcallocator>::expand (
this=0x7ffff68a1360)
at /space/rguenther/src/svn/gcc-6-branch/gcc/hash-table.h:734
#1 0x0000000000c5803e in hash_table<indirect_string_hasher,
xcallocator>::find_slot_with_hash (this=0x7ffff68a1360,
comparable=@0x7fffffffd838: 0x7ffff69d79f0 "__cplusplus ",
hash=2325771649, insert=INSERT)
at /space/rguenther/src/svn/gcc-6-branch/gcc/hash-table.h:860
#2 0x0000000000c183c2 in find_AT_string_in_table (
str=0x7ffff69d79f0 "__cplusplus ", table=0x7ffff68a1360)
at /space/rguenther/src/svn/gcc-6-branch/gcc/dwarf2out.c:4099
#3 0x0000000000c18461 in find_AT_string (str=0x7ffff69d79f0 "__cplusplus ")
at /space/rguenther/src/svn/gcc-6-branch/gcc/dwarf2out.c:4121
#4 0x0000000000c4af5f in output_macinfo_op (ref=0x7ffff7eaf020)
at /space/rguenther/src/svn/gcc-6-branch/gcc/dwarf2out.c:25082
#5 0x0000000000c4aecc in output_macinfo_op (ref=0x7ffff7eaf020)
at /space/rguenther/src/svn/gcc-6-branch/gcc/dwarf2out.c:25070
#6 0x0000000000c4b95c in output_macinfo ()
at /space/rguenther/src/svn/gcc-6-branch/gcc/dwarf2out.c:25351
#7 0x0000000000c516cc in dwarf2out_finish (filename=0x28dea50 "t.ii")
at /space/rguenther/src/svn/gcc-6-branch/gcc/dwarf2out.c:27975
enlarging the hash table after indexes are assigned. Only afterwards
we are outputting indirect strings.
So the fix is probably to move assigning indexes right before outputting?
Or to not create new indirect strings when outputting macinfo. Or to not
rely on hash table walking.