Allow for the possibility that the local labels won't be in the objdump output.
[deliverable/binutils-gdb.git] / gdb / mipsread.c
index 279541812eaaba3bd32d5eda1d988a7667496698..dac06fc001dc690b1586acf0ef0c283a03c8a7f0 100644 (file)
@@ -1,5 +1,6 @@
 /* Read a symbol table in MIPS' format (Third-Eye).
-   Copyright 1986, 87, 89, 90, 91, 92, 93, 94, 95, 96, 1998
+   Copyright 1986, 1987, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
+   1998, 1999, 2000, 2001
    Free Software Foundation, Inc.
    Contributed by Alessandro Forin (af@cs.cmu.edu) at CMU.  Major work
    by Per Bothner, John Gilmore and Ian Lance Taylor at Cygnus Support.
@@ -32,7 +33,6 @@
 #include "objfiles.h"
 #include "buildsym.h"
 #include "stabsread.h"
-#include "gdb-stabs.h"
 
 #include "coff/sym.h"
 #include "coff/internal.h"
 #include "elf/common.h"
 #include "elf/mips.h"
 
-extern void _initialize_mipsread PARAMS ((void));
+extern void _initialize_mipsread (void);
 
-static void
-mipscoff_new_init PARAMS ((struct objfile *));
+static void mipscoff_new_init (struct objfile *);
 
-static void
-mipscoff_symfile_init PARAMS ((struct objfile *));
+static void mipscoff_symfile_init (struct objfile *);
 
-static void
-mipscoff_symfile_read PARAMS ((struct objfile *, int));
+static void mipscoff_symfile_read (struct objfile *, int);
 
-static void
-mipscoff_symfile_finish PARAMS ((struct objfile *));
+static void mipscoff_symfile_finish (struct objfile *);
 
 static void
-read_alphacoff_dynamic_symtab PARAMS ((struct section_offsets *,
-                                      struct objfile * objfile));
+read_alphacoff_dynamic_symtab (struct section_offsets *,
+                              struct objfile *objfile);
 
 /* Initialize anything that needs initializing when a completely new
    symbol file is specified (not just adding some symbols from another
@@ -67,8 +63,7 @@ read_alphacoff_dynamic_symtab PARAMS ((struct section_offsets *,
 extern CORE_ADDR sigtramp_address;
 
 static void
-mipscoff_new_init (ignore)
-     struct objfile *ignore;
+mipscoff_new_init (struct objfile *ignore)
 {
   sigtramp_address = 0;
   stabsread_new_init ();
@@ -78,17 +73,14 @@ mipscoff_new_init (ignore)
 /* Initialize to read a symbol file (nothing to do).  */
 
 static void
-mipscoff_symfile_init (objfile)
-     struct objfile *objfile;
+mipscoff_symfile_init (struct objfile *objfile)
 {
 }
 
 /* Read a symbol file from a file.  */
 
 static void
-mipscoff_symfile_read (objfile, mainline)
-     struct objfile *objfile;
-     int mainline;
+mipscoff_symfile_read (struct objfile *objfile, int mainline)
 {
   bfd *abfd = objfile->obfd;
   struct cleanup *back_to;
@@ -140,8 +132,7 @@ mipscoff_symfile_read (objfile, mainline)
    particular objfile.  */
 
 static void
-mipscoff_symfile_finish (objfile)
-     struct objfile *objfile;
+mipscoff_symfile_finish (struct objfile *objfile)
 {
 }
 
@@ -194,8 +185,7 @@ struct alphacoff_dynsecinfo
     asection *got_sect;                /* Section pointer for .got section */
   };
 
-static void
-alphacoff_locate_sections PARAMS ((bfd *, asection *, void *));
+static void alphacoff_locate_sections (bfd *, asection *, void *);
 
 /* We are called once per section from read_alphacoff_dynamic_symtab.
    We need to examine each section we are passed, check to see
@@ -203,10 +193,7 @@ alphacoff_locate_sections PARAMS ((bfd *, asection *, void *));
    if so, stash away some access information for the section.  */
 
 static void
-alphacoff_locate_sections (ignore_abfd, sectp, sip)
-     bfd *ignore_abfd;
-     asection *sectp;
-     PTR sip;
+alphacoff_locate_sections (bfd *ignore_abfd, asection *sectp, PTR sip)
 {
   register struct alphacoff_dynsecinfo *si;
 
@@ -234,9 +221,8 @@ alphacoff_locate_sections (ignore_abfd, sectp, sip)
    add them to the minimal symbol table.  */
 
 static void
-read_alphacoff_dynamic_symtab (section_offsets, objfile)
-     struct section_offsets *section_offsets;
-     struct objfile *objfile;
+read_alphacoff_dynamic_symtab (struct section_offsets *section_offsets,
+                              struct objfile *objfile)
 {
   bfd *abfd = objfile->obfd;
   struct alphacoff_dynsecinfo si;
@@ -257,6 +243,7 @@ read_alphacoff_dynamic_symtab (section_offsets, objfile)
   int got_entry_size = 8;
   int dt_mips_local_gotno = -1;
   int dt_mips_gotsym = -1;
+  struct cleanup *cleanups;
 
 
   /* We currently only know how to handle alpha dynamic symbols.  */
@@ -276,10 +263,14 @@ read_alphacoff_dynamic_symtab (section_offsets, objfile)
   str_secsize = bfd_get_section_size_before_reloc (si.str_sect);
   dyninfo_secsize = bfd_get_section_size_before_reloc (si.dyninfo_sect);
   got_secsize = bfd_get_section_size_before_reloc (si.got_sect);
-  sym_secptr = alloca (sym_secsize);
-  str_secptr = alloca (str_secsize);
-  dyninfo_secptr = alloca (dyninfo_secsize);
-  got_secptr = alloca (got_secsize);
+  sym_secptr = xmalloc (sym_secsize);
+  cleanups = make_cleanup (free, sym_secptr);
+  str_secptr = xmalloc (str_secsize);
+  make_cleanup (free, str_secptr);
+  dyninfo_secptr = xmalloc (dyninfo_secsize);
+  make_cleanup (free, dyninfo_secptr);
+  got_secptr = xmalloc (got_secsize);
+  make_cleanup (free, got_secptr);
 
   if (!bfd_get_section_contents (abfd, si.sym_sect, sym_secptr,
                                 (file_ptr) 0, sym_secsize))
@@ -432,6 +423,8 @@ read_alphacoff_dynamic_symtab (section_offsets, objfile)
 
       prim_record_minimal_symbol (name, sym_value, ms_type, objfile);
     }
+
+  do_cleanups (cleanups);
 }
 
 /* Initialization */
@@ -448,7 +441,7 @@ static struct sym_fns ecoff_sym_fns =
 };
 
 void
-_initialize_mipsread ()
+_initialize_mipsread (void)
 {
   add_symtab_fns (&ecoff_sym_fns);
 }
This page took 0.025014 seconds and 4 git commands to generate.