* mips-dis.c (print_insn_mips16): Set insn_info information.
[deliverable/binutils-gdb.git] / gdb / hpread.c
index c8fbec072caaf36b18aaf8b87be32d1e738343bf..9aa1fb10af21e1f51be9a14139c29f675f6e185b 100644 (file)
@@ -32,6 +32,7 @@
 #include "complaints.h"
 #include "gdb-stabs.h"
 #include "gdbtypes.h"
+#include "demangle.h"
 
 /* Private information attached to an objfile which we use to find
    and internalize the HP C debug symbols within that objfile.  */
@@ -135,6 +136,9 @@ extern struct complaint lbrac_mismatch_complaint;
 \f
 void hpread_symfile_init  PARAMS ((struct objfile *));
 
+static struct type *
+hpread_read_array_type PARAMS ((dnttpointer, union dnttentry *, struct objfile *));
+
 static struct type *hpread_alloc_type
   PARAMS ((dnttpointer, struct objfile *));
 
@@ -160,7 +164,7 @@ void hpread_symfile_finish PARAMS ((struct objfile *));
 
 static struct partial_symtab *hpread_start_psymtab
   PARAMS ((struct objfile *, struct section_offsets *, char *, CORE_ADDR, int,
-          struct partial_symbol *, struct partial_symbol *));
+          struct partial_symbol **, struct partial_symbol **));
 
 static struct partial_symtab *hpread_end_psymtab
   PARAMS ((struct partial_symtab *, char **, int, int, CORE_ADDR,
@@ -336,7 +340,7 @@ hpread_build_psymtabs (objfile, section_offsets, mainline)
   int dependencies_used, dependencies_allocated;
 
   /* Just in case the stabs reader left turds lying around.  */
-  pending_blocks = 0;
+  free_pending_blocks ();
   make_cleanup (really_free_pendings, 0);
 
   pst = (struct partial_symtab *) 0;
@@ -506,10 +510,10 @@ hpread_build_psymtabs (objfile, section_offsets, mainline)
              valu = dn_bufp->dfunc.lowaddr +
                ANOFFSET (section_offsets, SECT_OFF_TEXT);
              SET_NAMESTRING (dn_bufp, &namestring, objfile);
-             ADD_PSYMBOL_TO_LIST (namestring, strlen (namestring),
+             add_psymbol_to_list (namestring, strlen (namestring),
                                   VAR_NAMESPACE, LOC_BLOCK,
-                                  objfile->static_psymbols, valu,
-                                  language_unknown, objfile);
+                                  &objfile->static_psymbols, valu,
+                                  0, language_unknown, objfile);
              within_function = 1;
              continue;
            case DNTT_TYPE_BEGIN:
@@ -575,19 +579,19 @@ hpread_build_psymtabs (objfile, section_offsets, mainline)
                  }
                if (dn_bufp->dsvar.global)
                  {
-                   ADD_PSYMBOL_TO_LIST (namestring, strlen (namestring),
+                   add_psymbol_to_list (namestring, strlen (namestring),
                                         namespace, storage,
-                                        objfile->global_psymbols,
+                                        &objfile->global_psymbols,
                                         dn_bufp->dsvar.location,
-                                        language_unknown, objfile);
+                                        0, language_unknown, objfile);
                  }
                else
                  {
-                   ADD_PSYMBOL_TO_LIST (namestring, strlen (namestring),
+                   add_psymbol_to_list (namestring, strlen (namestring),
                                         namespace, storage,
-                                        objfile->static_psymbols,
+                                        &objfile->static_psymbols,
                                         dn_bufp->dsvar.location,
-                                        language_unknown, objfile);
+                                        0, language_unknown, objfile);
                  }
                continue;
              }
@@ -604,10 +608,10 @@ hpread_build_psymtabs (objfile, section_offsets, mainline)
                                              objfile->global_psymbols.next,
                                              objfile->static_psymbols.next);
                }
-             ADD_PSYMBOL_TO_LIST (namestring, strlen (namestring),
+             add_psymbol_to_list (namestring, strlen (namestring),
                                   VAR_NAMESPACE, LOC_CONST,
-                                  objfile->static_psymbols, 0,
-                                  language_unknown, objfile);
+                                  &objfile->static_psymbols, 0,
+                                  0, language_unknown, objfile);
              continue;
            default:
              continue;
@@ -827,8 +831,8 @@ hpread_start_psymtab (objfile, section_offsets,
      char *filename;
      CORE_ADDR textlow;
      int ldsymoff;
-     struct partial_symbol *global_syms;
-     struct partial_symbol *static_syms;
+     struct partial_symbol **global_syms;
+     struct partial_symbol **static_syms;
 {
   struct partial_symtab *result =
   start_psymtab_common (objfile, section_offsets,
@@ -1215,12 +1219,14 @@ hpread_lookup_type (hp_type, objfile)
            {
              TYPE_VECTOR_LENGTH (objfile) = 100;
              TYPE_VECTOR (objfile) = (struct type **)
-               xmalloc (TYPE_VECTOR_LENGTH (objfile) * sizeof (struct type *));
+               xmmalloc (objfile -> md,
+                         TYPE_VECTOR_LENGTH (objfile) * sizeof (struct type *));
            }
          while (index >= TYPE_VECTOR_LENGTH (objfile))
            TYPE_VECTOR_LENGTH (objfile) *= 2;
          TYPE_VECTOR (objfile) = (struct type **)
-           xrealloc ((char *) TYPE_VECTOR (objfile),
+           xmrealloc (objfile -> md,
+                      (char *) TYPE_VECTOR (objfile),
                      (TYPE_VECTOR_LENGTH (objfile) * sizeof (struct type *)));
          memset (&TYPE_VECTOR (objfile)[old_len], 0,
                  (TYPE_VECTOR_LENGTH (objfile) - old_len) *
@@ -1286,7 +1292,8 @@ hpread_read_enum_type (hp_type, dn_bufp, objfile)
       sym = (struct symbol *) obstack_alloc (&objfile->symbol_obstack,
                                             sizeof (struct symbol));
       memset (sym, 0, sizeof (struct symbol));
-      SYMBOL_NAME (sym) = name;
+      SYMBOL_NAME (sym) = obsavestring (name, strlen (name), 
+                                       &objfile->symbol_obstack);
       SYMBOL_CLASS (sym) = LOC_CONST;
       SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
       SYMBOL_VALUE (sym) = memp->dmember.value;
@@ -1377,7 +1384,8 @@ hpread_read_function_type (hp_type, dn_bufp, objfile)
       sym = (struct symbol *) obstack_alloc (&objfile->symbol_obstack,
                                             sizeof (struct symbol));
       (void) memset (sym, 0, sizeof (struct symbol));
-      SYMBOL_NAME (sym) = name;
+      SYMBOL_NAME (sym) = obsavestring (name, strlen (name),
+                                       &objfile->symbol_obstack);
 
       /* Figure out where it lives.  */
       if (paramp->dfparam.regparam)
@@ -1789,7 +1797,7 @@ hpread_process_one_debug_symbol (dn_bufp, name, section_offsets, objfile,
   sym = (struct symbol *) obstack_alloc (&objfile->symbol_obstack,
                                         sizeof (struct symbol));
   memset (sym, 0, sizeof (struct symbol));
-  SYMBOL_NAME (sym) = name;
+  SYMBOL_NAME (sym) = obsavestring (name, strlen (name), &objfile->symbol_obstack);
   SYMBOL_LANGUAGE (sym) = language_auto;
   SYMBOL_INIT_DEMANGLED_NAME (sym, &objfile->symbol_obstack);
   SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
This page took 0.025674 seconds and 4 git commands to generate.