From: Joel Brobecker <brobecker@gnat.com>
To: gdb-patches@sources.redhat.com
Subject: Re: [RFA] Replace SET_NAMESTRING macro by function in hpread.c
Date: Sun, 12 Jan 2003 11:51:00 -0000 [thread overview]
Message-ID: <20030112115046.GP30359@gnat.com> (raw)
In-Reply-To: <20030111174913.GA1930@nevyn.them.org>
[-- Attachment #1: Type: text/plain, Size: 501 bytes --]
> > 2003-01-10 J. Brobecker <brobecker@gnat.com>
> >
> > * hpread.c (set_namestring): New procedure replacing the
> > SET_NAMESTRING macro.
> > (hpread_build_psymtabs): Replace calls to SET_NAMESTRING
> > by calls to set_namestring.
> >
> > Ok to apply?
>
> Yes, if...
> > + if (! hpread_has_name ((sym)->dblock.kind))
>
> Please lose all the extra parentheses from the macro definition.
Thanks. Attached is the actual change that I just checked in.
--
Joel
[-- Attachment #2: hpread.c.diff --]
[-- Type: text/plain, Size: 7133 bytes --]
Index: hpread.c
===================================================================
RCS file: /cvs/src/src/gdb/hpread.c,v
retrieving revision 1.30
diff -c -3 -p -r1.30 hpread.c
*** hpread.c 11 Jan 2003 02:13:22 -0000 1.30
--- hpread.c 12 Jan 2003 11:46:03 -0000
*************** struct hpread_symfile_info
*** 87,109 ****
#define WITHIN_FUNCTION(o) (HPUX_SYMFILE_INFO(o)->within_function)
#define CURRENT_FUNCTION_VALUE(o) (HPUX_SYMFILE_INFO(o)->current_function_value)
- /* Given the native debug symbol SYM, set NAMEP to the name associated
- with the debug symbol. Note we may be called with a debug symbol which
- has no associated name, in that case we return an empty string.
-
- Also note we "know" that the name for any symbol is always in the
- same place. Hence we don't have to conditionalize on the symbol type. */
- #define SET_NAMESTRING(SYM, NAMEP, OBJFILE) \
- if (! hpread_has_name ((SYM)->dblock.kind)) \
- *NAMEP = ""; \
- else if (((unsigned)(SYM)->dsfile.name) >= VT_SIZE (OBJFILE)) \
- { \
- complaint (&symfile_complaints, "bad string table offset in symbol %d", \
- symnum); \
- *NAMEP = ""; \
- } \
- else \
- *NAMEP = (SYM)->dsfile.name + VT (OBJFILE)
\f
/* We put a pointer to this structure in the read_symtab_private field
of the psymtab. */
--- 87,92 ----
*************** lbrac_mismatch_complaint (int arg1)
*** 155,160 ****
--- 138,146 ----
/* Forward procedure declarations */
+ static void set_namestring (union dnttentry *sym, char **namep,
+ struct objfile *objfile);
+
void hpread_symfile_init (struct objfile *);
void do_pxdb (bfd *);
*************** trans_lang (enum hp_language in_lang)
*** 302,307 ****
--- 288,315 ----
static char main_string[] = "main";
\f
+
+ /* Given the native debug symbol SYM, set NAMEP to the name associated
+ with the debug symbol. Note we may be called with a debug symbol which
+ has no associated name, in that case we return an empty string. */
+
+ static void
+ set_namestring (union dnttentry *sym, char **namep, struct objfile *objfile)
+ {
+ /* Note that we "know" that the name for any symbol is always in the same
+ place. Hence we don't have to conditionalize on the symbol type. */
+ if (! hpread_has_name (sym->dblock.kind))
+ *namep = "";
+ else if ((unsigned) sym->dsfile.name >= VT_SIZE (objfile))
+ {
+ complaint (&symfile_complaints, "bad string table offset in symbol %d",
+ symnum);
+ *namep = "";
+ }
+ else
+ *namep = sym->dsfile.name + VT (objfile);
+ }
+
/* Call PXDB to process our file.
Approach copied from DDE's "dbgk_run_pxdb". Note: we
*************** hpread_build_psymtabs (struct objfile *o
*** 1917,1923 ****
/* A source file of some kind. Note this may simply
be an included file. */
! SET_NAMESTRING (dn_bufp, &namestring, objfile);
/* Check if this is the source file we are already working
with. */
--- 1925,1931 ----
/* A source file of some kind. Note this may simply
be an included file. */
! set_namestring (dn_bufp, &namestring, objfile);
/* Check if this is the source file we are already working
with. */
*************** hpread_build_psymtabs (struct objfile *o
*** 2022,2028 ****
}
/* Now begin a new module and a new psymtab for it */
! SET_NAMESTRING (dn_bufp, &namestring, objfile);
valu = hpread_get_textlow (i, hp_symnum, objfile, symcount);
valu += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
if (!pst)
--- 2030,2036 ----
}
/* Now begin a new module and a new psymtab for it */
! set_namestring (dn_bufp, &namestring, objfile);
valu = hpread_get_textlow (i, hp_symnum, objfile, symcount);
valu += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
if (!pst)
*************** hpread_build_psymtabs (struct objfile *o
*** 2048,2054 ****
texthigh = valu;
valu = dn_bufp->dfunc.lowaddr +
ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
! SET_NAMESTRING (dn_bufp, &namestring, objfile);
if (dn_bufp->dfunc.global)
add_psymbol_to_list (namestring, strlen (namestring),
VAR_NAMESPACE, LOC_BLOCK,
--- 2056,2062 ----
texthigh = valu;
valu = dn_bufp->dfunc.lowaddr +
ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
! set_namestring (dn_bufp, &namestring, objfile);
if (dn_bufp->dfunc.global)
add_psymbol_to_list (namestring, strlen (namestring),
VAR_NAMESPACE, LOC_BLOCK,
*************** hpread_build_psymtabs (struct objfile *o
*** 2069,2075 ****
texthigh = valu;
valu = dn_bufp->ddocfunc.lowaddr +
ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
! SET_NAMESTRING (dn_bufp, &namestring, objfile);
if (dn_bufp->ddocfunc.global)
add_psymbol_to_list (namestring, strlen (namestring),
VAR_NAMESPACE, LOC_BLOCK,
--- 2077,2083 ----
texthigh = valu;
valu = dn_bufp->ddocfunc.lowaddr +
ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
! set_namestring (dn_bufp, &namestring, objfile);
if (dn_bufp->ddocfunc.global)
add_psymbol_to_list (namestring, strlen (namestring),
VAR_NAMESPACE, LOC_BLOCK,
*************** hpread_build_psymtabs (struct objfile *o
*** 2143,2149 ****
else
storage = LOC_UNDEF;
! SET_NAMESTRING (dn_bufp, &namestring, objfile);
if (!pst)
{
pst = hpread_start_psymtab (objfile,
--- 2151,2157 ----
else
storage = LOC_UNDEF;
! set_namestring (dn_bufp, &namestring, objfile);
if (!pst)
{
pst = hpread_start_psymtab (objfile,
*************** hpread_build_psymtabs (struct objfile *o
*** 2227,2233 ****
case DNTT_TYPE_MEMENUM:
case DNTT_TYPE_CONST:
/* Constants and members of enumerated types. */
! SET_NAMESTRING (dn_bufp, &namestring, objfile);
if (!pst)
{
pst = hpread_start_psymtab (objfile,
--- 2235,2241 ----
case DNTT_TYPE_MEMENUM:
case DNTT_TYPE_CONST:
/* Constants and members of enumerated types. */
! set_namestring (dn_bufp, &namestring, objfile);
if (!pst)
{
pst = hpread_start_psymtab (objfile,
*************** hpread_expand_symtab (struct objfile *ob
*** 2827,2834 ****
if (dn_bufp->dblock.extension)
continue;
! /* Yow! We call SET_NAMESTRING on things without names! */
! SET_NAMESTRING (dn_bufp, &namestring, objfile);
hpread_process_one_debug_symbol (dn_bufp, namestring, section_offsets,
objfile, text_offset, text_size,
--- 2835,2842 ----
if (dn_bufp->dblock.extension)
continue;
! /* Yow! We call set_namestring on things without names! */
! set_namestring (dn_bufp, &namestring, objfile);
hpread_process_one_debug_symbol (dn_bufp, namestring, section_offsets,
objfile, text_offset, text_size,
next prev parent reply other threads:[~2003-01-12 11:51 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-11 9:32 Joel Brobecker
2003-01-11 17:48 ` Daniel Jacobowitz
2003-01-12 11:51 ` Joel Brobecker [this message]
2003-01-11 18:31 ` Andrew Cagney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030112115046.GP30359@gnat.com \
--to=brobecker@gnat.com \
--cc=gdb-patches@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox