Use an accessor function for general_symbol_info::language
[deliverable/binutils-gdb.git] / gdb / dbxread.c
index e004e8cb93e517aec1457e2286d6c4e09dbc6594..ecfa89ae0cd0269679c5bd9b8434a9c35a1099fa 100644 (file)
@@ -1,5 +1,5 @@
 /* Read dbx symbol tables and convert to internal format, for GDB.
-   Copyright (C) 1986-2018 Free Software Foundation, Inc.
+   Copyright (C) 1986-2019 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -61,7 +61,7 @@
 
 /* Key for dbx-associated data.  */
 
-const struct objfile_data *dbx_objfile_data_key;
+objfile_key<dbx_symfile_info> dbx_objfile_data_key;
 
 /* We put a pointer to this structure in the read_symtab_private field
    of the psymtab.  */
@@ -207,10 +207,10 @@ find_text_range (bfd * sym_bfd, struct objfile *objfile)
   CORE_ADDR end = 0;
 
   for (sec = sym_bfd->sections; sec; sec = sec->next)
-    if (bfd_get_section_flags (sym_bfd, sec) & SEC_CODE)
+    if (bfd_section_flags (sec) & SEC_CODE)
       {
-       CORE_ADDR sec_start = bfd_section_vma (sym_bfd, sec);
-       CORE_ADDR sec_end = sec_start + bfd_section_size (sym_bfd, sec);
+       CORE_ADDR sec_start = bfd_section_vma (sec);
+       CORE_ADDR sec_end = sec_start + bfd_section_size (sec);
 
        if (found_any)
          {
@@ -298,9 +298,7 @@ static void add_old_header_file (const char *, int);
 static void add_this_object_header_file (int);
 
 static struct partial_symtab *start_psymtab (struct objfile *, const char *,
-                                            CORE_ADDR, int,
-                                            std::vector<partial_symbol *> &,
-                                            std::vector<partial_symbol *> &);
+                                            CORE_ADDR, int);
 
 /* Free up old header file tables.  */
 
@@ -538,9 +536,7 @@ dbx_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
     perror_with_name (objfile_name (objfile));
 
   /* Size the symbol table.  */
-  if (objfile->global_psymbols.capacity () == 0
-      && objfile->static_psymbols.capacity () == 0)
-    init_psymbol_list (objfile, DBX_SYMCOUNT (objfile));
+  init_psymbol_list (objfile, DBX_SYMCOUNT (objfile));
 
   symbol_size = DBX_SYMBOL_SIZE (objfile);
   symbol_table_offset = DBX_SYMTAB_OFFSET (objfile);
@@ -591,14 +587,12 @@ dbx_symfile_init (struct objfile *objfile)
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
   asection *text_sect;
   unsigned char size_temp[DBX_STRINGTAB_SIZE_SIZE];
-  struct dbx_symfile_info *dbx;
 
   /* Allocate struct to keep track of the symfile.  */
-  dbx = XCNEW (struct dbx_symfile_info);
-  set_objfile_data (objfile, dbx_objfile_data_key, dbx);
+  dbx_objfile_data_key.emplace (objfile);
 
   DBX_TEXT_SECTION (objfile) = bfd_get_section_by_name (sym_bfd, ".text");
   DBX_DATA_SECTION (objfile) = bfd_get_section_by_name (sym_bfd, ".data");
@@ -613,8 +607,8 @@ dbx_symfile_init (struct objfile *objfile)
   text_sect = bfd_get_section_by_name (sym_bfd, ".text");
   if (!text_sect)
     error (_("Can't find .text section in symbol file"));
-  DBX_TEXT_ADDR (objfile) = bfd_section_vma (sym_bfd, text_sect);
-  DBX_TEXT_SIZE (objfile) = bfd_section_size (sym_bfd, text_sect);
+  DBX_TEXT_ADDR (objfile) = bfd_section_vma (text_sect);
+  DBX_TEXT_SIZE (objfile) = bfd_section_size (text_sect);
 
   DBX_SYMBOL_SIZE (objfile) = obj_symbol_entry_size (sym_bfd);
   DBX_SYMCOUNT (objfile) = bfd_get_symcount (sym_bfd);
@@ -707,15 +701,12 @@ dbx_symfile_finish (struct objfile *objfile)
   free_header_files ();
 }
 
-static void
-dbx_free_symfile_info (struct objfile *objfile, void *arg)
+dbx_symfile_info::~dbx_symfile_info ()
 {
-  struct dbx_symfile_info *dbx = (struct dbx_symfile_info *) arg;
-
-  if (dbx->header_files != NULL)
+  if (header_files != NULL)
     {
-      int i = dbx->n_header_files;
-      struct header_file *hfiles = dbx->header_files;
+      int i = n_header_files;
+      struct header_file *hfiles = header_files;
 
       while (--i >= 0)
        {
@@ -724,8 +715,6 @@ dbx_free_symfile_info (struct objfile *objfile, void *arg)
        }
       xfree (hfiles);
     }
-
-  xfree (dbx);
 }
 
 \f
@@ -751,7 +740,8 @@ static char *stringtab_global;
 /* These variables are used to control fill_symbuf when the stabs
    symbols are not contiguous (as may be the case when a COFF file is
    linked using --split-by-reloc).  */
-static struct stab_section_list *symbuf_sections;
+static const std::vector<asection *> *symbuf_sections;
+static size_t sect_idx;
 static unsigned int symbuf_left;
 static unsigned int symbuf_read;
 
@@ -787,13 +777,13 @@ fill_symbuf (bfd *sym_bfd)
     {
       if (symbuf_left <= 0)
        {
-         file_ptr filepos = symbuf_sections->section->filepos;
+         file_ptr filepos = (*symbuf_sections)[sect_idx]->filepos;
 
          if (bfd_seek (sym_bfd, filepos, SEEK_SET) != 0)
            perror_with_name (bfd_get_filename (sym_bfd));
-         symbuf_left = bfd_section_size (sym_bfd, symbuf_sections->section);
+         symbuf_left = bfd_section_size ((*symbuf_sections)[sect_idx]);
          symbol_table_offset = filepos - symbuf_read;
-         symbuf_sections = symbuf_sections->next;
+         ++sect_idx;
        }
 
       count = symbuf_left;
@@ -1302,9 +1292,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
              {
                pst = start_psymtab (objfile,
                                     namestring, valu,
-                                    first_so_symnum * symbol_size,
-                                    objfile->global_psymbols,
-                                    objfile->static_psymbols);
+                                    first_so_symnum * symbol_size);
                pst->dirname = dirname_nso;
                dirname_nso = NULL;
              }
@@ -1452,9 +1440,8 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
              if (!new_name.empty ())
                {
                  sym_len = new_name.length ();
-                 sym_name = (char *) obstack_copy0 (&objfile->objfile_obstack,
-                                                    new_name.c_str (),
-                                                    sym_len);
+                 sym_name = obstack_strdup (&objfile->objfile_obstack,
+                                            new_name);
                }
            }
 
@@ -1477,20 +1464,20 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
              if (gdbarch_static_transform_name_p (gdbarch))
                gdbarch_static_transform_name (gdbarch, namestring);
 
-             add_psymbol_to_list (sym_name, sym_len, 1,
+             add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true,
                                   VAR_DOMAIN, LOC_STATIC,
                                   data_sect_index,
-                                  &objfile->static_psymbols,
+                                  psymbol_placement::STATIC,
                                   nlist.n_value, psymtab_language, objfile);
              continue;
 
            case 'G':
              /* The addresses in these entries are reported to be
                 wrong.  See the code that reads 'G's for symtabs.  */
-             add_psymbol_to_list (sym_name, sym_len, 1,
+             add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true,
                                   VAR_DOMAIN, LOC_STATIC,
                                   data_sect_index,
-                                  &objfile->global_psymbols,
+                                  psymbol_placement::GLOBAL,
                                   nlist.n_value, psymtab_language, objfile);
              continue;
 
@@ -1505,16 +1492,16 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
                  || (p == namestring + 1
                      && namestring[0] != ' '))
                {
-                 add_psymbol_to_list (sym_name, sym_len, 1,
-                                      STRUCT_DOMAIN, LOC_TYPEDEF, -1,
-                                      &objfile->static_psymbols,
+                 add_psymbol_to_list (gdb::string_view (sym_name, sym_len),
+                                      true, STRUCT_DOMAIN, LOC_TYPEDEF, -1,
+                                      psymbol_placement::STATIC,
                                       0, psymtab_language, objfile);
                  if (p[2] == 't')
                    {
                      /* Also a typedef with the same name.  */
-                     add_psymbol_to_list (sym_name, sym_len, 1,
-                                          VAR_DOMAIN, LOC_TYPEDEF, -1,
-                                          &objfile->static_psymbols,
+                     add_psymbol_to_list (gdb::string_view (sym_name, sym_len),
+                                          true, VAR_DOMAIN, LOC_TYPEDEF, -1,
+                                          psymbol_placement::STATIC,
                                           0, psymtab_language, objfile);
                      p += 1;
                    }
@@ -1524,9 +1511,9 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
            case 't':
              if (p != namestring)      /* a name is there, not just :T...  */
                {
-                 add_psymbol_to_list (sym_name, sym_len, 1,
-                                      VAR_DOMAIN, LOC_TYPEDEF, -1,
-                                      &objfile->static_psymbols,
+                 add_psymbol_to_list (gdb::string_view (sym_name, sym_len),
+                                      true, VAR_DOMAIN, LOC_TYPEDEF, -1,
+                                      psymbol_placement::STATIC,
                                       0, psymtab_language, objfile);
                }
            check_enum:
@@ -1585,9 +1572,9 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
                        ;
                      /* Note that the value doesn't matter for
                         enum constants in psymtabs, just in symtabs.  */
-                     add_psymbol_to_list (p, q - p, 1,
+                     add_psymbol_to_list (gdb::string_view (p, q - p), true,
                                           VAR_DOMAIN, LOC_CONST, -1,
-                                          &objfile->static_psymbols, 0,
+                                          psymbol_placement::STATIC, 0,
                                           psymtab_language, objfile);
                      /* Point past the name.  */
                      p = q;
@@ -1603,9 +1590,9 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
 
            case 'c':
              /* Constant, e.g. from "const" in Pascal.  */
-             add_psymbol_to_list (sym_name, sym_len, 1,
+             add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true,
                                   VAR_DOMAIN, LOC_CONST, -1,
-                                  &objfile->static_psymbols, 0,
+                                  psymbol_placement::STATIC, 0,
                                   psymtab_language, objfile);
              continue;
 
@@ -1658,10 +1645,10 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
                  pst->set_text_low (nlist.n_value);
                  textlow_not_set = 0;
                }
-             add_psymbol_to_list (sym_name, sym_len, 1,
+             add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true,
                                   VAR_DOMAIN, LOC_BLOCK,
                                   SECT_OFF_TEXT (objfile),
-                                  &objfile->static_psymbols,
+                                  psymbol_placement::STATIC,
                                   nlist.n_value, psymtab_language, objfile);
              continue;
 
@@ -1717,10 +1704,10 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
                  pst->set_text_low (nlist.n_value);
                  textlow_not_set = 0;
                }
-             add_psymbol_to_list (sym_name, sym_len, 1,
+             add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true,
                                   VAR_DOMAIN, LOC_BLOCK,
                                   SECT_OFF_TEXT (objfile),
-                                  &objfile->global_psymbols,
+                                  psymbol_placement::GLOBAL,
                                   nlist.n_value, psymtab_language, objfile);
              continue;
 
@@ -1916,12 +1903,10 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
 
 static struct partial_symtab *
 start_psymtab (struct objfile *objfile, const char *filename, CORE_ADDR textlow,
-              int ldsymoff, std::vector<partial_symbol *> &global_psymbols,
-              std::vector<partial_symbol *> &static_psymbols)
+              int ldsymoff)
 {
   struct partial_symtab *result =
-    start_psymtab_common (objfile, filename, textlow,
-                         global_psymbols, static_psymbols);
+    start_psymtab_common (objfile, filename, textlow);
 
   result->read_symtab_private =
     XOBNEW (&objfile->objfile_obstack, struct symloc);
@@ -2014,18 +1999,14 @@ dbx_end_psymtab (struct objfile *objfile, struct partial_symtab *pst,
     pst->set_text_low (pst->raw_text_high ());
   else
     {
-      struct partial_symtab *p1;
-
       /* If we know our own starting text address, then walk through all other
          psymtabs for this objfile, and if any didn't know their ending text
          address, set it to our starting address.  Take care to not set our
          own ending address to our starting address.  */
 
-      ALL_OBJFILE_PSYMTABS (objfile, p1)
-      {
+      for (partial_symtab *p1 : objfile->psymtabs ())
        if (!p1->text_high_valid && p1->text_low_valid && p1 != pst)
          p1->set_text_high (pst->raw_text_low ());
-      }
     }
 
   /* End of kludge for patching Solaris textlow and texthigh.  */
@@ -2035,9 +2016,8 @@ dbx_end_psymtab (struct objfile *objfile, struct partial_symtab *pst,
   pst->number_of_dependencies = number_dependencies;
   if (number_dependencies)
     {
-      pst->dependencies = XOBNEWVEC (&objfile->objfile_obstack,
-                                    struct partial_symtab *,
-                                    number_dependencies);
+      pst->dependencies
+       = objfile->partial_symtabs->allocate_dependencies (number_dependencies);
       memcpy (pst->dependencies, dependency_list,
              number_dependencies * sizeof (struct partial_symtab *));
     }
@@ -2057,17 +2037,10 @@ dbx_end_psymtab (struct objfile *objfile, struct partial_symtab *pst,
       /* We could save slight bits of space by only making one of these,
          shared by the entire set of include files.  FIXME-someday.  */
       subpst->dependencies =
-       XOBNEW (&objfile->objfile_obstack, struct partial_symtab *);
+       objfile->partial_symtabs->allocate_dependencies (1);
       subpst->dependencies[0] = pst;
       subpst->number_of_dependencies = 1;
 
-      subpst->globals_offset =
-       subpst->n_global_syms =
-       subpst->statics_offset =
-       subpst->n_static_syms = 0;
-
-      subpst->readin = 0;
-      subpst->compunit_symtab = 0;
       subpst->read_symtab = pst->read_symtab;
     }
 
@@ -2325,7 +2298,7 @@ read_ofile_symtab (struct objfile *objfile, struct partial_symtab *pst)
       else if (type & N_EXT || type == (unsigned char) N_TEXT
               || type == (unsigned char) N_NBTEXT)
        {
-         /* Global symbol: see if we came across a dbx defintion for
+         /* Global symbol: see if we came across a dbx definition for
             a corresponding symbol.  If so, store the value.  Remove
             syms from the chain when their values are stored, but
             search the whole chain, as there may be several syms from
@@ -2368,7 +2341,7 @@ cp_set_block_scope (const struct symbol *symbol,
                    struct block *block,
                    struct obstack *obstack)
 {
-  if (SYMBOL_DEMANGLED_NAME (symbol) != NULL)
+  if (symbol->demangled_name () != NULL)
     {
       /* Try to figure out the appropriate namespace from the
         demangled name.  */
@@ -2378,11 +2351,10 @@ cp_set_block_scope (const struct symbol *symbol,
         name of the class as well.  This should be harmless, but
         is a little unfortunate.  */
 
-      const char *name = SYMBOL_DEMANGLED_NAME (symbol);
+      const char *name = symbol->demangled_name ();
       unsigned int prefix_len = cp_entire_prefix_len (name);
 
-      block_set_scope (block,
-                      (const char *) obstack_copy0 (obstack, name, prefix_len),
+      block_set_scope (block, obstack_strndup (obstack, name, prefix_len),
                       obstack);
     }
 }
@@ -2484,7 +2456,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, const char *name,
                                cstk.start_addr, cstk.start_addr + valu);
 
          /* For C++, set the block's scope.  */
-         if (SYMBOL_LANGUAGE (cstk.name) == language_cplus)
+         if (cstk.name->language () == language_cplus)
            cp_set_block_scope (cstk.name, block, &objfile->objfile_obstack);
 
          /* May be switching to an assembler file which may not be using
@@ -2656,7 +2628,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, const char *name,
          function-relative symbols.  */
       valu += function_start_offset;
 
-      /* GCC 2.95.3 emits the first N_SLINE stab somwehere in the
+      /* GCC 2.95.3 emits the first N_SLINE stab somewhere in the
         middle of the prologue instead of right at the start of the
         function.  To deal with this we record the address for the
         first N_SLINE stab to be the start of the function instead of
@@ -2851,7 +2823,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, const char *name,
                                        cstk.start_addr, valu);
 
                  /* For C++, set the block's scope.  */
-                 if (SYMBOL_LANGUAGE (cstk.name) == language_cplus)
+                 if (cstk.name->language () == language_cplus)
                    cp_set_block_scope (cstk.name, block,
                                        &objfile->objfile_obstack);
                }
@@ -2962,14 +2934,17 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, const char *name,
 void
 coffstab_build_psymtabs (struct objfile *objfile,
                         CORE_ADDR textaddr, unsigned int textsize,
-                        struct stab_section_list *stabsects,
+                        const std::vector<asection *> &stabsects,
                         file_ptr stabstroffset, unsigned int stabstrsize)
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
   unsigned int stabsize;
 
+  /* Allocate struct to keep track of stab reading.  */
+  dbx_objfile_data_key.emplace (objfile);
+
   DBX_TEXT_ADDR (objfile) = textaddr;
   DBX_TEXT_SIZE (objfile) = textsize;
 
@@ -3001,27 +2976,28 @@ coffstab_build_psymtabs (struct objfile *objfile,
   /* In a coff file, we've already installed the minimal symbols that came
      from the coff (non-stab) symbol table, so always act like an
      incremental load here.  */
-  if (stabsects->next == NULL)
+  scoped_restore save_symbuf_sections
+    = make_scoped_restore (&symbuf_sections);
+  if (stabsects.size () == 1)
     {
-      stabsize = bfd_section_size (sym_bfd, stabsects->section);
+      stabsize = bfd_section_size (stabsects[0]);
       DBX_SYMCOUNT (objfile) = stabsize / DBX_SYMBOL_SIZE (objfile);
-      DBX_SYMTAB_OFFSET (objfile) = stabsects->section->filepos;
+      DBX_SYMTAB_OFFSET (objfile) = stabsects[0]->filepos;
     }
   else
     {
-      struct stab_section_list *stabsect;
-
       DBX_SYMCOUNT (objfile) = 0;
-      for (stabsect = stabsects; stabsect != NULL; stabsect = stabsect->next)
+      for (asection *section : stabsects)
        {
-         stabsize = bfd_section_size (sym_bfd, stabsect->section);
+         stabsize = bfd_section_size (section);
          DBX_SYMCOUNT (objfile) += stabsize / DBX_SYMBOL_SIZE (objfile);
        }
 
-      DBX_SYMTAB_OFFSET (objfile) = stabsects->section->filepos;
+      DBX_SYMTAB_OFFSET (objfile) = stabsects[0]->filepos;
 
-      symbuf_sections = stabsects->next;
-      symbuf_left = bfd_section_size (sym_bfd, stabsects->section);
+      sect_idx = 1;
+      symbuf_sections = &stabsects;
+      symbuf_left = bfd_section_size (stabsects[0]);
       symbuf_read = 0;
     }
 
@@ -3050,7 +3026,12 @@ elfstab_build_psymtabs (struct objfile *objfile, asection *stabsect,
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
+
+  stabsread_new_init ();
+
+  /* Allocate struct to keep track of stab reading.  */
+  dbx_objfile_data_key.emplace (objfile);
 
   /* Find the first and last text address.  dbx_symfile_read seems to
      want this.  */
@@ -3059,7 +3040,7 @@ elfstab_build_psymtabs (struct objfile *objfile, asection *stabsect,
 #define        ELF_STABS_SYMBOL_SIZE   12      /* XXX FIXME XXX */
   DBX_SYMBOL_SIZE (objfile) = ELF_STABS_SYMBOL_SIZE;
   DBX_SYMCOUNT (objfile)
-    = bfd_section_size (objfile->obfd, stabsect) / DBX_SYMBOL_SIZE (objfile);
+    = bfd_section_size (stabsect) / DBX_SYMBOL_SIZE (objfile);
   DBX_STRINGTAB_SIZE (objfile) = stabstrsize;
   DBX_SYMTAB_OFFSET (objfile) = stabsect->filepos;
   DBX_STAB_SECTION (objfile) = stabsect;
@@ -3086,7 +3067,7 @@ elfstab_build_psymtabs (struct objfile *objfile, asection *stabsect,
   processing_acc_compilation = 1;
 
   symbuf_read = 0;
-  symbuf_left = bfd_section_size (objfile->obfd, stabsect);
+  symbuf_left = bfd_section_size (stabsect);
 
   scoped_restore restore_stabs_data = make_scoped_restore (&stabs_data);
   gdb::unique_xmalloc_ptr<gdb_byte> data_holder;
@@ -3126,11 +3107,10 @@ stabsect_build_psymtabs (struct objfile *objfile, char *stab_name,
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
   asection *stabsect;
   asection *stabstrsect;
   asection *text_sect;
-  struct dbx_symfile_info *dbx;
 
   stabsect = bfd_get_section_by_name (sym_bfd, stab_name);
   stabstrsect = bfd_get_section_by_name (sym_bfd, stabstr_name);
@@ -3143,19 +3123,18 @@ stabsect_build_psymtabs (struct objfile *objfile, char *stab_name,
             "but not string section (%s)"),
           stab_name, stabstr_name);
 
-  dbx = XCNEW (struct dbx_symfile_info);
-  set_objfile_data (objfile, dbx_objfile_data_key, dbx);
+  dbx_objfile_data_key.emplace (objfile);
 
   text_sect = bfd_get_section_by_name (sym_bfd, text_name);
   if (!text_sect)
     error (_("Can't find %s section in symbol file"), text_name);
-  DBX_TEXT_ADDR (objfile) = bfd_section_vma (sym_bfd, text_sect);
-  DBX_TEXT_SIZE (objfile) = bfd_section_size (sym_bfd, text_sect);
+  DBX_TEXT_ADDR (objfile) = bfd_section_vma (text_sect);
+  DBX_TEXT_SIZE (objfile) = bfd_section_size (text_sect);
 
   DBX_SYMBOL_SIZE (objfile) = sizeof (struct external_nlist);
-  DBX_SYMCOUNT (objfile) = bfd_section_size (sym_bfd, stabsect)
+  DBX_SYMCOUNT (objfile) = bfd_section_size (stabsect)
     / DBX_SYMBOL_SIZE (objfile);
-  DBX_STRINGTAB_SIZE (objfile) = bfd_section_size (sym_bfd, stabstrsect);
+  DBX_STRINGTAB_SIZE (objfile) = bfd_section_size (stabstrsect);
   DBX_SYMTAB_OFFSET (objfile) = stabsect->filepos;     /* XXX - FIXME: POKING
                                                           INSIDE BFD DATA
                                                           STRUCTURES */
@@ -3209,7 +3188,4 @@ void
 _initialize_dbxread (void)
 {
   add_symtab_fns (bfd_target_aout_flavour, &aout_sym_fns);
-
-  dbx_objfile_data_key
-    = register_objfile_data_with_cleanup (NULL, dbx_free_symfile_info);
 }
This page took 0.069124 seconds and 4 git commands to generate.