aboutsummaryrefslogtreecommitdiff
path: root/gdb/buildsym.c
diff options
context:
space:
mode:
authorPer Bothner <per@bothner.com>1991-11-04 23:15:31 +0000
committerPer Bothner <per@bothner.com>1991-11-04 23:15:31 +0000
commitabefb1f107afeef549f30b47d73dd0b4d9cbe08b (patch)
tree71d887f16381f6ee775ccc1e3a3c216edcd50353 /gdb/buildsym.c
parent6a8687f3c73e4054f225e034a009afb7803db294 (diff)
downloadgdb-abefb1f107afeef549f30b47d73dd0b4d9cbe08b.zip
gdb-abefb1f107afeef549f30b47d73dd0b4d9cbe08b.tar.gz
gdb-abefb1f107afeef549f30b47d73dd0b4d9cbe08b.tar.bz2
* infrun.c: Fixed typo in comment.
* utils.c: All the v*fprintf emulation is now in libiberty, so we can get rid of some junk. * xm-sun3os4.h, xm-sun4os4.h, xconfig/decstation, xconfig/i386sco, xconfig/sun3os4, xconfig/sun4os4: Don`t need HAVE_STRSTR any more. * m68k-pinsn.c (print_insn_arg): Support BB/BW/BL type operands, as used by branch instructions. * gmalloc.c: Fix prototype of memcpy. * elfread.c: Comment out register_addr, since it conflicts with the one in coredep.c. * buildsym.h: Remove extern declarations of two functions that are really static in buildsym.c. * tm-mips.h: Add symbolic names for more registers. * mips-xdep.c (store_inferior_registers): Use new register names. * xm-mips.h: Simplify REGISTER_U_ADDR, since it is now only used for core files, not ptrace. Therefore, the KERNEL_U_ADDR hack is no longer needed. The mapping to ptrace number is now in in mips-xdep.c. * mips-xdep.c: Define REGISTER_PTRACE_ADDR (using the mapping from the old REGISTER_U_ADDR), and use it in {fetch,store}_inferior_registers. * mipsread.c: Rename #include ecoff.h to new name coff-mips.h. * mips-tdep.c (mips_push_dummy_frame, mips_pop_frame): Save/restore FP regs correctly (?). * dbxread.c: Remove duplicate define_symbol and type_synonym_name (these had been previously moved to buildsym.c). Hence, define_symbol becomes extern instead of static. * buildsym.c (read_struct_type): Comment out bogus handling of C++ operator methods. Minor hacking of reading of class contexts. Make define_symbol non-static, so dbxread.c can call it.
Diffstat (limited to 'gdb/buildsym.c')
-rw-r--r--gdb/buildsym.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/gdb/buildsym.c b/gdb/buildsym.c
index 09d6c01..41bdca1 100644
--- a/gdb/buildsym.c
+++ b/gdb/buildsym.c
@@ -51,7 +51,7 @@ extern int hashname ();
extern void patch_block_stabs (); /* AIX xcoffread.c */
#define patch_block_stabs abort /* FIXME scaffolding */
-static struct symbol *define_symbol ();
+
static void cleanup_undefined_types ();
static void fix_common_block ();
@@ -826,7 +826,7 @@ read_type_number (pp, typenums)
static char *type_synonym_name;
/* ARGSUSED */
-static struct symbol *
+struct symbol *
define_symbol (valu, string, desc, type)
unsigned int valu;
char *string;
@@ -1841,14 +1841,13 @@ read_struct_type (pp, type)
}
*pp = p + 1;
context = read_type (pp);
- if (type_name_no_tag (context) == 0)
+ name = type_name_no_tag (context);
+ if (name == 0)
{
- if (name == 0)
- error ("type name unknown at symtab pos %d.", symnum);
- /* FIXME-tiemann: when is `name' ever non-0? */
- TYPE_NAME (context) = obsavestring (name, p - name - 1);
+ error ("type name unknown at symtab pos %d.", symnum);
+ TYPE_NAME (context) = name;
}
- list->field.name = obconcat (prefix, type_name_no_tag (context), "");
+ list->field.name = obconcat (prefix, name, "");
p = ++(*pp);
if (p[-1] != ':')
error ("invalid abbreviation at symtab pos %d.", symnum);
@@ -2034,29 +2033,32 @@ read_struct_type (pp, type)
/* read in the name. */
while (*p != ':') p++;
+#if 0
if ((*pp)[0] == 'o' && (*pp)[1] == 'p' && (*pp)[2] == CPLUS_MARKER)
{
/* This lets the user type "break operator+".
We could just put in "+" as the name, but that wouldn't
work for "*". */
+ /* I don't understand what this is trying to do.
+ It seems completely bogus. -Per Bothner. */
static char opname[32] = {'o', 'p', CPLUS_MARKER};
char *o = opname + 3;
/* Skip past '::'. */
- p += 2;
+ *pp = p + 2;
+ if (**pp == '\\') *pp = next_symbol_text ();
+ p = *pp;
while (*p != '.')
*o++ = *p++;
- main_fn_name = savestring (opname, o - opname);
+ main_fn_name = savestring (opname, o - opname);
/* Skip past '.' */
*pp = p + 1;
}
else
- {
- i = 0;
+#endif
main_fn_name = savestring (*pp, p - *pp);
- /* Skip past '::'. */
- *pp = p + 2;
- }
+ /* Skip past '::'. */
+ *pp = p + 2;
new_mainlist->fn_fieldlist.name = main_fn_name;
do