From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16351 invoked by alias); 22 Nov 2002 00:26:25 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 16344 invoked from network); 22 Nov 2002 00:26:24 -0000 Received: from unknown (HELO jackfruit.Stanford.EDU) (171.64.38.136) by sources.redhat.com with SMTP; 22 Nov 2002 00:26:24 -0000 Received: (from carlton@localhost) by jackfruit.Stanford.EDU (8.11.6/8.11.6) id gAM0QNX22420; Thu, 21 Nov 2002 16:26:23 -0800 X-Authentication-Warning: jackfruit.Stanford.EDU: carlton set sender to carlton@math.stanford.edu using -f To: gdb-patches@sources.redhat.com Cc: Jim Blandy , Elena Zannoni Subject: [rfa+5.3] bug in my earlier DW_TAG_namespace patch From: David Carlton Date: Thu, 21 Nov 2002 16:26:00 -0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-11/txt/msg00529.txt.bz2 I just noticed that my earlier patch that allowed GDB to accept DW_TAG_namespace entries had a bug in it. The function scan_partial_symbols in dwarf2read.c only descends into DIEs that have a name; but anonymous namespaces can lead to DIEs without names which have interesting children (where by "interesting" I mean that we want to add partial symbols corresponding to them). This could result in us missing some partial symbols. I've enclosed a patch below: for obvious reasons, it should go into GDB 5.3 as well. I've run GDB on a copy of GDB with this patch applied and followed the control flow when GDB runs into various sorts of DW_TAG_namespace entries, and the control flow seems to behave like I expect it to. (This is, admittedly, after only a limited amount of testing.) I'm in the middle of running the testsuite (I'll run it twice, once on a compiler that doesn't generate DW_TAG_namespace entries and once on a compiler that does); assuming that there are no new regressions, is the patch okay? David Carlton carlton@math.stanford.edu 2002-11-21 David Carlton * dwarf2read.c (scan_partial_symbols): Descend into namespace pdi's with no name. Index: dwarf2read.c =================================================================== RCS file: /cvs/src/src/gdb/dwarf2read.c,v retrieving revision 1.75 diff -u -p -r1.75 dwarf2read.c --- dwarf2read.c 11 Nov 2002 00:55:34 -0000 1.75 +++ dwarf2read.c 22 Nov 2002 00:11:49 -0000 @@ -1359,7 +1359,9 @@ scan_partial_symbols (char *info_ptr, st { info_ptr = read_partial_die (&pdi, abfd, info_ptr, cu_header); - if (pdi.name) + /* Anonymous namespaces have no name but are interesting. */ + + if (pdi.name != NULL || pdi.tag == DW_TAG_namespace) { switch (pdi.tag) {