[Bug default/27438] [dwz, odr, multifile] Multifile after odr not optimal
vries at gcc dot gnu.org
sourceware-bugzilla@sourceware.org
Fri Feb 19 12:24:30 GMT 2021
https://sourceware.org/bugzilla/show_bug.cgi?id=27438
--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> ---
The problem is caused by the fact that the duplicate chain:
...
duplicate chain:
139 O 26b2adba(fdca21c2) 26b2adba bbb structure_type
1af O 26b2adba(d80f5f71) 26b2adba bbb structure_type
...
starts with a decl in CU1:
...
<1><139>: Abbrev Number: 5 (DW_TAG_structure_type)
<13a> DW_AT_name : bbb
<13e> DW_AT_declaration : 1
...
and then has a def in CU2:
...
<1><1af>: Abbrev Number: 2 (DW_TAG_structure_type)
<1b0> DW_AT_name : bbb
<1b4> DW_AT_byte_size : 4
<1b5> DW_AT_decl_file : 1
<1b6> DW_AT_decl_line : 4
<1b7> DW_AT_sibling : <0x1c8>
...
This is a problem for writing out the dies, since there we count on accessing
the attributes and children of the first die in the duplicate chain.
This problem is fixed by reorder_dups, which switches order of def and decl.
However, consequently the DW_AT_decl_file with value 1, referring to odr-2.cc
in CU2 will be interpreted using the file table of CU1, and ends up referring
to odr.cc instead. This is the root cause.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Dwz
mailing list