From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24580 invoked by alias); 6 Jun 2012 21:03:05 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 24547 invoked by uid 306); 6 Jun 2012 21:03:04 -0000 Date: Wed, 06 Jun 2012 21:03:00 -0000 Message-ID: <20120606210304.24532.qmail@sourceware.org> From: tromey@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-tromey-dwz-multifile: maybe rewrite an attribute's form when reading X-Git-Refname: refs/heads/archer-tromey-dwz-multifile X-Git-Reftype: branch X-Git-Oldrev: ed604dd3d75f53284ea11af3354ba0a415f4aef8 X-Git-Newrev: c11f6dbe8028d3ca7b263d54f20164fc2f222d28 X-SW-Source: 2012-q2/txt/msg00046.txt.bz2 List-Id: The branch, archer-tromey-dwz-multifile has been updated via c11f6dbe8028d3ca7b263d54f20164fc2f222d28 (commit) from ed604dd3d75f53284ea11af3354ba0a415f4aef8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c11f6dbe8028d3ca7b263d54f20164fc2f222d28 Author: Tom Tromey Date: Wed Jun 6 15:01:29 2012 -0600 maybe rewrite an attribute's form when reading if the attribute comes from a .dwz section, and it has a reference form, we rewrite it to DW_FORM_GNU_ref_alt. this lets us continue to invisibly handle abstract die inheritance, and the like, without changes all over the dwarf reader I'm still undecided as to whether this is clean enough to push upstream or whether some deeper fix ought to be done ----------------------------------------------------------------------- Summary of changes: gdb/dwarf2read.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 37ff4c2..30123d3 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -11927,6 +11927,10 @@ read_attribute_value (const struct die_reader_specs *reader, bfd_get_filename (abfd)); } + /* Super hack. */ + if (cu->per_cu->is_dwz && is_ref_attr (attr)) + attr->form = DW_FORM_GNU_ref_alt; + /* We have seen instances where the compiler tried to emit a byte size attribute of -1 which ended up being encoded as an unsigned 0xffffffff. Although 0xffffffff is technically a valid size value, hooks/post-receive -- Repository for Project Archer.