diff options
author | Per Bothner <per@bothner.com> | 1991-11-04 23:15:31 +0000 |
---|---|---|
committer | Per Bothner <per@bothner.com> | 1991-11-04 23:15:31 +0000 |
commit | abefb1f107afeef549f30b47d73dd0b4d9cbe08b (patch) | |
tree | 71d887f16381f6ee775ccc1e3a3c216edcd50353 /gdb/buildsym.c | |
parent | 6a8687f3c73e4054f225e034a009afb7803db294 (diff) | |
download | gdb-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.c | 32 |
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 |