From patchwork Sun Jan 26 23:41:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Simon Marchi (Code Review)" X-Patchwork-Id: 37558 Received: (qmail 41326 invoked by alias); 26 Jan 2020 23:41:22 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 41216 invoked by uid 89); 26 Jan 2020 23:41:22 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-21.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=sk:dwarf2_ X-HELO: mx1.osci.io Received: from polly.osci.io (HELO mx1.osci.io) (8.43.85.229) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 26 Jan 2020 23:41:19 +0000 Received: by mx1.osci.io (Postfix, from userid 994) id BDD8B20456; Sun, 26 Jan 2020 18:41:16 -0500 (EST) Received: from gnutoolchain-gerrit.osci.io (gnutoolchain-gerrit.osci.io [8.43.85.239]) by mx1.osci.io (Postfix) with ESMTP id A6684209FE; Sun, 26 Jan 2020 18:41:09 -0500 (EST) Received: from localhost (localhost [127.0.0.1]) by gnutoolchain-gerrit.osci.io (Postfix) with ESMTP id 7CD8F218A2; Sun, 26 Jan 2020 18:41:09 -0500 (EST) X-Gerrit-PatchSet: 2 Date: Sun, 26 Jan 2020 18:41:07 -0500 From: "Sourceware to Gerrit sync (Code Review)" To: Tom Tromey , gdb-patches@sourceware.org Auto-Submitted: auto-generated X-Gerrit-MessageType: newpatchset Subject: [pushed] Turn start_psymtab_common into a constructor X-Gerrit-Change-Id: I5a0217bcb52bcfa442559771954bb66bd9ccbf02 X-Gerrit-Change-Number: 378 X-Gerrit-ChangeURL: X-Gerrit-Commit: c3693a1d9466bc9d3abe004e66f1b56fed22ba61 In-Reply-To: References: Reply-To: noreply@gnutoolchain-gerrit.osci.io, tromey@sourceware.org, gdb-patches@sourceware.org MIME-Version: 1.0 Content-Disposition: inline User-Agent: Gerrit/3.0.3-79-g83ff7f88f1 Message-Id: <20200126234109.7CD8F218A2@gnutoolchain-gerrit.osci.io> The original change was created by Tom Tromey. Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/378 ...................................................................... Turn start_psymtab_common into a constructor This turns start_psymtab_common into a constructor, and then changes the callers to use "new" directly. This completes the psymtab allocation transition -- now it is possible for symbol readers to subclass struct partial_symtab. gdb/ChangeLog 2020-01-26 Tom Tromey * xcoffread.c (xcoff_start_psymtab): Use new. * psymtab.c (partial_symtab::partial_symtab): New constructor, renamed from start_psymtab_common. * psympriv.h (struct partial_symtab): Add new constructor. (start_psymtab_common): Don't declare. * mdebugread.c (parse_partial_symbols): Use new. * dwarf2read.c (create_partial_symtab): Use new. * dbxread.c (start_psymtab): Use new. * ctfread.c (create_partial_symtab): Use new. Change-Id: I5a0217bcb52bcfa442559771954bb66bd9ccbf02 --- M gdb/ChangeLog M gdb/ctfread.c M gdb/dbxread.c M gdb/dwarf2read.c M gdb/mdebugread.c M gdb/psympriv.h M gdb/psymtab.c M gdb/xcoffread.c 8 files changed, 37 insertions(+), 31 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 854ac31..6353a00 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,17 @@ 2020-01-26 Tom Tromey + * xcoffread.c (xcoff_start_psymtab): Use new. + * psymtab.c (partial_symtab::partial_symtab): New constructor, + renamed from start_psymtab_common. + * psympriv.h (struct partial_symtab): Add new constructor. + (start_psymtab_common): Don't declare. + * mdebugread.c (parse_partial_symbols): Use new. + * dwarf2read.c (create_partial_symtab): Use new. + * dbxread.c (start_psymtab): Use new. + * ctfread.c (create_partial_symtab): Use new. + +2020-01-26 Tom Tromey + * xcoffread.c (xcoff_end_psymtab): Use new. * psymtab.c (start_psymtab_common): Use new. (partial_symtab::partial_symtab): Rename from allocate_psymtab. diff --git a/gdb/ctfread.c b/gdb/ctfread.c index c41d96f..e3931fb 100644 --- a/gdb/ctfread.c +++ b/gdb/ctfread.c @@ -1299,7 +1299,7 @@ struct partial_symtab *pst; struct ctf_context *ccx; - pst = start_psymtab_common (objfile, name, 0); + pst = new partial_symtab (name, objfile, 0); ccx = XOBNEW (&objfile->objfile_obstack, struct ctf_context); ccx->fp = cfp; diff --git a/gdb/dbxread.c b/gdb/dbxread.c index 9527085..4e388fae 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -1903,8 +1903,8 @@ start_psymtab (struct objfile *objfile, const char *filename, CORE_ADDR textlow, int ldsymoff) { - struct partial_symtab *result = - start_psymtab_common (objfile, filename, textlow); + struct partial_symtab *result = new partial_symtab (filename, objfile, + textlow); result->read_symtab_private = XOBNEW (&objfile->objfile_obstack, struct symloc); diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 2cac286..f865fa4 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -8027,7 +8027,7 @@ struct objfile *objfile = per_cu->dwarf2_per_objfile->objfile; struct partial_symtab *pst; - pst = start_psymtab_common (objfile, name, 0); + pst = new partial_symtab (name, objfile, 0); pst->psymtabs_addrmap_supported = true; diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c index 2ec30ec..dafc7f4 100644 --- a/gdb/mdebugread.c +++ b/gdb/mdebugread.c @@ -2609,9 +2609,7 @@ textlow = fh->adr; else textlow = 0; - pst = start_psymtab_common (objfile, - fdr_name (fh), - textlow); + pst = new partial_symtab (fdr_name (fh), objfile, textlow); pst->read_symtab_private = XOBNEW (&objfile->objfile_obstack, symloc); memset (pst->read_symtab_private, 0, sizeof (struct symloc)); diff --git a/gdb/psympriv.h b/gdb/psympriv.h index 74ff10e..82ae1b5 100644 --- a/gdb/psympriv.h +++ b/gdb/psympriv.h @@ -113,6 +113,14 @@ partial_symtab (const char *filename, struct objfile *objfile) ATTRIBUTE_NONNULL (2) ATTRIBUTE_NONNULL (3); + /* Like the above, but also sets the initial text low and text high + from the ADDR argument, and sets the global- and + static-offsets. */ + + partial_symtab (const char *filename, struct objfile *objfile, + CORE_ADDR addr) + ATTRIBUTE_NONNULL (2) ATTRIBUTE_NONNULL (3); + /* Return the raw low text address of this partial_symtab. */ CORE_ADDR raw_text_low () const { @@ -326,9 +334,6 @@ extern void init_psymbol_list (struct objfile *objfile, int total_symbols); -extern struct partial_symtab *start_psymtab_common (struct objfile *, - const char *, CORE_ADDR); - extern void end_psymtab_common (struct objfile *, struct partial_symtab *); static inline void diff --git a/gdb/psymtab.c b/gdb/psymtab.c index 844e718..b31461c 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -1475,24 +1475,18 @@ }); } -/* Allocate and partially fill a partial symtab. It will be - completely filled at the end of the symbol list. +/* Partially fill a partial symtab. It will be completely filled at + the end of the symbol list. */ - FILENAME is the name of the symbol-file we are reading from. */ - -struct partial_symtab * -start_psymtab_common (struct objfile *objfile, - const char *filename, - CORE_ADDR textlow) +partial_symtab::partial_symtab (const char *filename, + struct objfile *objfile, + CORE_ADDR textlow) + : partial_symtab (filename, objfile) { - struct partial_symtab *psymtab; - - psymtab = new partial_symtab (filename, objfile); - psymtab->set_text_low (textlow); - psymtab->set_text_high (psymtab->raw_text_low ()); /* default */ - psymtab->globals_offset = objfile->partial_symtabs->global_psymbols.size (); - psymtab->statics_offset = objfile->partial_symtabs->static_psymbols.size (); - return psymtab; + set_text_low (textlow); + set_text_high (raw_text_low ()); /* default */ + globals_offset = objfile->partial_symtabs->global_psymbols.size (); + statics_offset = objfile->partial_symtabs->static_psymbols.size (); } /* Perform "finishing up" operations of a partial symtab. */ diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index be10c4f..901c134 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -2007,11 +2007,8 @@ xcoff_start_psymtab (struct objfile *objfile, const char *filename, int first_symnum) { - struct partial_symtab *result = - start_psymtab_common (objfile, - filename, - /* We fill in textlow later. */ - 0); + /* We fill in textlow later. */ + struct partial_symtab *result = new partial_symtab (filename, objfile, 0); result->read_symtab_private = XOBNEW (&objfile->objfile_obstack, struct symloc);