From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 71026 invoked by alias); 22 Apr 2019 12:00:27 -0000 Mailing-List: contact dwz-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: dwz-owner@sourceware.org Received: (qmail 70916 invoked by uid 48); 22 Apr 2019 12:00:23 -0000 From: "vries at gcc dot gnu.org" To: dwz@sourceware.org Subject: [Bug default/24468] dwz -m generates partial unit without import Date: Tue, 01 Jan 2019 00:00:00 -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-SW-Source: 2019-q2/txt/msg00026.txt.bz2 https://sourceware.org/bugzilla/show_bug.cgi?id=3D24468 --- Comment #2 from Tom de Vries --- (In reply to Tom de Vries from comment #1) > So, what happens is this: the partial unit at 2b5 in the multifile contai= ns > as first die: > ... > <1><2be>: Abbrev Number: 5 (DW_TAG_const_type) > <2bf> DW_AT_type : <0x4c> > ... > which refers to: > ... > <1><4c>: Abbrev Number: 18 (DW_TAG_typedef) > <4d> DW_AT_name : (indirect string, offset: 0x54c): size_t > <51> DW_AT_decl_file : 1 > <52> DW_AT_decl_line : 216 > <53> DW_AT_type : <0x344> > ... > in another partial unit in the multifile. >=20 > When matching dies in the input file against the dies in the multifile > during finalize_multifile, we compare 2be to 394: > ... > <1><389>: Abbrev Number: 24 (DW_TAG_typedef) > <38a> DW_AT_name : (indirect string, offset: 0x226): size_t > <38e> DW_AT_decl_file : 2 > <38f> DW_AT_decl_line : 216 > <390> DW_AT_type : <0x14> > <1><394>: Abbrev Number: 7 (DW_TAG_const_type) > <395> DW_AT_type : <0x389> > ... > which then fails because of a mismatch in DW_FORM (DW_FORM_ref_addr vs > DW_FORM_ref_udata). >=20 which is fixed by: ... diff --git a/dwz.c b/dwz.c index 8ea7c4d..93532b9 100644 --- a/dwz.c +++ b/dwz.c @@ -3161,7 +3161,7 @@ die_eq_1 (dw_cu_ref cu1, dw_cu_ref cu2, switch (form1) { case DW_FORM_ref_addr: - if (likely (!op_multifile && !rd_multifile)) + if (likely (!op_multifile && !rd_multifile && !fi_multifile)) { if (form1 !=3D form2) FAIL; @@ -3176,7 +3176,7 @@ die_eq_1 (dw_cu_ref cu1, dw_cu_ref cu2, switch (form2) { case DW_FORM_ref_addr: - if (likely (!op_multifile && !rd_multifile)) + if (likely (!op_multifile && !rd_multifile && !fi_multifile)) FAIL; break; case DW_FORM_ref_udata: ... --=20 You are receiving this mail because: You are on the CC list for the bug.