Add basic support for AArch64.
[deliverable/binutils-gdb.git] / gdb / coffread.c
index 398e61c05b3a1803cad1d0d1eb49926fdcd22ca2..3cc14cefabe3e4dcc62673618e3ff0e33fa81e7d 100644 (file)
@@ -1,5 +1,5 @@
 /* Read coff symbol tables and convert to internal format, for GDB.
-   Copyright (C) 1987-2005, 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 1987-2013 Free Software Foundation, Inc.
    Contributed by David D. Johnson, Brown University (ddj@cs.brown.edu).
 
    This file is part of GDB.
@@ -396,9 +396,7 @@ coff_start_symtab (const char *name)
 static void
 complete_symtab (const char *name, CORE_ADDR start_addr, unsigned int size)
 {
-  if (last_source_file != NULL)
-    xfree (last_source_file);
-  last_source_file = xstrdup (name);
+  set_last_source_file (name);
   current_source_start_addr = start_addr;
   current_source_end_addr = start_addr + size;
 }
@@ -417,7 +415,7 @@ coff_end_symtab (struct objfile *objfile)
              SECT_OFF_TEXT (objfile));
 
   /* Reinitialize for beginning of new file.  */
-  last_source_file = NULL;
+  set_last_source_file (NULL);
 }
 \f
 static struct minimal_symbol *
@@ -745,7 +743,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
   coffread_objfile = objfile;
   nlist_bfd_global = objfile->obfd;
   nlist_nsyms_global = nsyms;
-  last_source_file = NULL;
+  set_last_source_file (NULL);
   memset (opaque_type_chain, 0, sizeof opaque_type_chain);
 
   if (type_vector)             /* Get rid of previous one.  */
@@ -766,7 +764,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
 
       if (cs->c_symnum == next_file_symnum && cs->c_sclass != C_FILE)
        {
-         if (last_source_file)
+         if (get_last_source_file ())
            coff_end_symtab (objfile);
 
          coff_start_symtab ("_globals_");
@@ -782,7 +780,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
 
       /* Special case for file with type declarations only, no
         text.  */
-      if (!last_source_file && SDB_TYPE (cs->c_type)
+      if (!get_last_source_file () && SDB_TYPE (cs->c_type)
          && cs->c_secnum == N_DEBUG)
        complete_symtab (filestring, 0, 0);
 
@@ -831,7 +829,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
 
          /* Complete symbol table for last object file
             containing debugging information.  */
-         if (last_source_file)
+         if (get_last_source_file ())
            {
              coff_end_symtab (objfile);
              coff_start_symtab (filestring);
@@ -1121,7 +1119,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
       read_pe_exported_syms (objfile);
     }
 
-  if (last_source_file)
+  if (get_last_source_file ())
     coff_end_symtab (objfile);
 
   /* Patch up any opaque types (references to types that are not defined
@@ -2013,8 +2011,8 @@ coff_read_struct_type (int index, int length, int lastsym,
          list = new;
 
          /* Save the data.  */
-         list->field.name = obsavestring (name, strlen (name), 
-                                          &objfile->objfile_obstack);
+         list->field.name = obstack_copy0 (&objfile->objfile_obstack,
+                                           name, strlen (name));
          FIELD_TYPE (list->field) = decode_type (ms, ms->c_type,
                                                  &sub_aux, objfile);
          SET_FIELD_BITPOS (list->field, 8 * ms->c_value);
@@ -2030,8 +2028,8 @@ coff_read_struct_type (int index, int length, int lastsym,
          list = new;
 
          /* Save the data.  */
-         list->field.name = obsavestring (name, strlen (name), 
-                                          &objfile->objfile_obstack);
+         list->field.name = obstack_copy0 (&objfile->objfile_obstack,
+                                           name, strlen (name));
          FIELD_TYPE (list->field) = decode_type (ms, ms->c_type,
                                                  &sub_aux, objfile);
          SET_FIELD_BITPOS (list->field, ms->c_value);
@@ -2104,8 +2102,8 @@ coff_read_enum_type (int index, int length, int lastsym,
          memset (sym, 0, sizeof (struct symbol));
 
          SYMBOL_SET_LINKAGE_NAME (sym,
-                                  obsavestring (name, strlen (name),
-                                                &objfile->objfile_obstack));
+                                  obstack_copy0 (&objfile->objfile_obstack,
+                                                 name, strlen (name)));
          SYMBOL_CLASS (sym) = LOC_CONST;
          SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
          SYMBOL_VALUE (sym) = ms->c_value;
This page took 0.027114 seconds and 4 git commands to generate.