From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id CAC6F3851C1D; Fri, 19 Feb 2021 12:24:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CAC6F3851C1D From: "vries at gcc dot gnu.org" To: dwz@sourceware.org Subject: [Bug default/27438] [dwz, odr, multifile] Multifile after odr not optimal Date: Fri, 19 Feb 2021 12:24:30 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: dwz X-Bugzilla-Component: default X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: vries at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: nobody at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: dwz@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Dwz mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Feb 2021 12:24:30 -0000 https://sourceware.org/bugzilla/show_bug.cgi?id=3D27438 --- Comment #4 from Tom de Vries --- 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 accessi= ng 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 referri= ng to odr.cc instead. This is the root cause. --=20 You are receiving this mail because: You are on the CC list for the bug.=