From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Received: (qmail 26122 invoked from network); 11 Jan 2003 09:32:00 -0000 Received: from unknown (HELO takamaka.act-europe.fr) (217.128.22.174) by 209.249.29.67 with SMTP; 11 Jan 2003 09:32:00 -0000 Received: by takamaka.act-europe.fr (Postfix, from userid 507) id 33824D34AE; Sat, 11 Jan 2003 13:31:46 +0400 (RET) Date: Sat, 11 Jan 2003 09:32:00 -0000 From: Joel Brobecker To: gdb-patches@sources.redhat.com Subject: [RFA] Replace SET_NAMESTRING macro by function in hpread.c Message-ID: <20030111093146.GL30359@gnat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="8w3uRX/HFJGApMzv" Content-Disposition: inline User-Agent: Mutt/1.4i X-SW-Source: 2003-01/txt/msg00445.txt.bz2 --8w3uRX/HFJGApMzv Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 378 In the name of macros-are-evil, as suggested by AndrewC, I replaced the SET_NAMESTRING macro by a function... 2003-01-10 J. Brobecker * 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? -- Joel --8w3uRX/HFJGApMzv Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="hpread.c.diff" Content-length: 7140 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 11 Jan 2003 09:23:48 -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) /* 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"; + + /* 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, --8w3uRX/HFJGApMzv--