merge from gcc
[deliverable/binutils-gdb.git] / gdb / symfile.c
index cc0f67dbe844dd56c1dc060e393e39ee8706ed5c..e20e6de3bb1c953cee81e15ed0a06e389443a664 100644 (file)
@@ -1,5 +1,6 @@
 /* Generic symbol file reading for the GNU debugger, GDB.
-   Copyright 1990-1996, 1998, 2000 Free Software Foundation, Inc.
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+   2000, 2001 Free Software Foundation, Inc.
    Contributed by Cygnus Support, using pieces from other GDB modules.
 
    This file is part of GDB.
@@ -36,8 +37,8 @@
 #include "inferior.h"          /* for write_pc */
 #include "gdb-stabs.h"
 #include "obstack.h"
+#include "completer.h"
 
-#include <assert.h>
 #include <sys/types.h>
 #include <fcntl.h>
 #include "gdb_string.h"
@@ -109,16 +110,14 @@ static void set_initial_language (void);
 
 static void load_command (char *, int);
 
+static void symbol_file_add_main_1 (char *args, int from_tty, int flags);
+
 static void add_symbol_file_command (char *, int);
 
 static void add_shared_symbol_files_command (char *, int);
 
 static void cashier_psymtab (struct partial_symtab *);
 
-static int compare_psymbols (const void *, const void *);
-
-static int compare_symbols (const void *, const void *);
-
 bfd *symfile_bfd_open (char *);
 
 static void find_sym_fns (struct objfile *);
@@ -206,16 +205,13 @@ int auto_solib_add = 1;
    comparison function takes two "void *" pointers. */
 
 static int
-compare_symbols (s1p, s2p)
-     const PTR s1p;
-     const PTR s2p;
+compare_symbols (const void *s1p, const void *s2p)
 {
   register struct symbol **s1, **s2;
 
   s1 = (struct symbol **) s1p;
   s2 = (struct symbol **) s2p;
-
-  return (STRCMP (SYMBOL_NAME (*s1), SYMBOL_NAME (*s2)));
+  return (strcmp (SYMBOL_SOURCE_NAME (*s1), SYMBOL_SOURCE_NAME (*s2)));
 }
 
 /*
@@ -241,12 +237,16 @@ compare_symbols (s1p, s2p)
  */
 
 static int
-compare_psymbols (s1p, s2p)
-     const PTR s1p;
-     const PTR s2p;
+compare_psymbols (const void *s1p, const void *s2p)
 {
-  register char *st1 = SYMBOL_NAME (*(struct partial_symbol **) s1p);
-  register char *st2 = SYMBOL_NAME (*(struct partial_symbol **) s2p);
+  register struct partial_symbol **s1, **s2;
+  register char *st1, *st2;
+
+  s1 = (struct partial_symbol **) s1p;
+  s2 = (struct partial_symbol **) s2p;
+  st1 = SYMBOL_SOURCE_NAME (*s1);
+  st2 = SYMBOL_SOURCE_NAME (*s2);
+
 
   if ((st1[0] - st2[0]) || !st1[0])
     {
@@ -258,25 +258,12 @@ compare_psymbols (s1p, s2p)
     }
   else
     {
-      /* Note: I replaced the STRCMP line (commented out below)
-       * with a simpler "strcmp()" which compares the 2 strings
-       * from the beginning. (STRCMP is a macro which first compares
-       * the initial characters, then falls back on strcmp).
-       * The reason is that the STRCMP line was tickling a C compiler
-       * bug on HP-UX 10.30, which is avoided with the simpler
-       * code. The performance gain from the more complicated code
-       * is negligible, given that we have already checked the
-       * initial 2 characters above. I reported the compiler bug,
-       * and once it is fixed the original line can be put back. RT
-       */
-      /* return ( STRCMP (st1 + 2, st2 + 2)); */
       return (strcmp (st1, st2));
     }
 }
 
 void
-sort_pst_symbols (pst)
-     struct partial_symtab *pst;
+sort_pst_symbols (struct partial_symtab *pst)
 {
   /* Sort the global list; don't sort the static list */
 
@@ -288,8 +275,7 @@ sort_pst_symbols (pst)
 /* Call sort_block_syms to sort alphabetically the symbols of one block.  */
 
 void
-sort_block_syms (b)
-     register struct block *b;
+sort_block_syms (register struct block *b)
 {
   qsort (&BLOCK_SYM (b, 0), BLOCK_NSYMS (b),
         sizeof (struct symbol *), compare_symbols);
@@ -299,8 +285,7 @@ sort_block_syms (b)
    the symbols of each block of one symtab.  */
 
 void
-sort_symtab_syms (s)
-     register struct symtab *s;
+sort_symtab_syms (register struct symtab *s)
 {
   register struct blockvector *bv;
   int nbl;
@@ -325,10 +310,7 @@ sort_symtab_syms (s)
    may be part of a larger string and we are only saving a substring. */
 
 char *
-obsavestring (ptr, size, obstackp)
-     char *ptr;
-     int size;
-     struct obstack *obstackp;
+obsavestring (char *ptr, int size, struct obstack *obstackp)
 {
   register char *p = (char *) obstack_alloc (obstackp, size + 1);
   /* Open-coded memcpy--saves function call time.  These strings are usually
@@ -349,9 +331,8 @@ obsavestring (ptr, size, obstackp)
    in the obstack pointed to by OBSTACKP.  */
 
 char *
-obconcat (obstackp, s1, s2, s3)
-     struct obstack *obstackp;
-     const char *s1, *s2, *s3;
+obconcat (struct obstack *obstackp, const char *s1, const char *s2,
+         const char *s3)
 {
   register int len = strlen (s1) + strlen (s2) + strlen (s3) + 1;
   register char *val = (char *) obstack_alloc (obstackp, len);
@@ -366,8 +347,7 @@ obconcat (obstackp, s1, s2, s3)
 int currently_reading_symtab = 0;
 
 static void
-decrement_reading_symtab (dummy)
-     void *dummy;
+decrement_reading_symtab (void *dummy)
 {
   currently_reading_symtab--;
 }
@@ -378,8 +358,7 @@ decrement_reading_symtab (dummy)
    case inline.  */
 
 struct symtab *
-psymtab_to_symtab (pst)
-     register struct partial_symtab *pst;
+psymtab_to_symtab (register struct partial_symtab *pst)
 {
   /* If it's been looked up before, return it. */
   if (pst->symtab)
@@ -400,8 +379,7 @@ psymtab_to_symtab (pst)
 /* Initialize entry point information for this objfile. */
 
 void
-init_entry_point_info (objfile)
-     struct objfile *objfile;
+init_entry_point_info (struct objfile *objfile)
 {
   /* Save startup file's range of PC addresses to help blockframe.c
      decide where the bottom of the stack is.  */
@@ -428,7 +406,7 @@ init_entry_point_info (objfile)
 /* Get current entry point address.  */
 
 CORE_ADDR
-entry_point_address ()
+entry_point_address (void)
 {
   return symfile_objfile ? symfile_objfile->ei.entry_point : 0;
 }
@@ -443,10 +421,7 @@ entry_point_address ()
    lowest-addressed loadable section.  */
 
 void
-find_lowest_section (abfd, sect, obj)
-     bfd *abfd;
-     asection *sect;
-     PTR obj;
+find_lowest_section (bfd *abfd, asection *sect, PTR obj)
 {
   asection **lowest = (asection **) obj;
 
@@ -502,8 +477,8 @@ free_section_addr_info (struct section_addr_info *sap)
 
   for (idx = 0; idx < MAX_SECTIONS; idx++)
     if (sap->other[idx].name)
-      free (sap->other[idx].name);
-  free (sap);
+      xfree (sap->other[idx].name);
+  xfree (sap);
 }
 
 
@@ -514,9 +489,8 @@ free_section_addr_info (struct section_addr_info *sap)
    for the objectfile OBJFILE and stuffs ADDR into all of the offsets.  */
 
 void
-default_symfile_offsets (objfile, addrs)
-     struct objfile *objfile;
-     struct section_addr_info *addrs;
+default_symfile_offsets (struct objfile *objfile,
+                        struct section_addr_info *addrs)
 {
   int i;
   asection *sect = NULL;
@@ -539,7 +513,7 @@ default_symfile_offsets (objfile, addrs)
       /* Record all sections in offsets */
       /* The section_offsets in the objfile are here filled in using
          the BFD index. */
-      ANOFFSET (objfile->section_offsets, osp->sectindex) = osp->addr;
+      (objfile->section_offsets)->offsets[osp->sectindex] = osp->addr;
     }
 
   /* Remember the bfd indexes for the .text, .data, .bss and
@@ -578,11 +552,8 @@ default_symfile_offsets (objfile, addrs)
    the symbol reading (and complaints can be more terse about it).  */
 
 void
-syms_from_objfile (objfile, addrs, mainline, verbo)
-     struct objfile *objfile;
-     struct section_addr_info *addrs;
-     int mainline;
-     int verbo;
+syms_from_objfile (struct objfile *objfile, struct section_addr_info *addrs,
+                  int mainline, int verbo)
 {
   asection *lower_sect;
   asection *sect;
@@ -778,7 +749,7 @@ syms_from_objfile (objfile, addrs, mainline, verbo)
   discard_cleanups (old_chain);
 
   /* Call this after reading in a new symbol table to give target
-     dependant code a crack at the new symbols.  For instance, this
+     dependent code a crack at the new symbols.  For instance, this
      could be used to update the values of target-specific symbols GDB
      needs to keep track of (such as _sigtramp, or whatever).  */
 
@@ -790,10 +761,7 @@ syms_from_objfile (objfile, addrs, mainline, verbo)
    objfile. */
 
 void
-new_symfile_objfile (objfile, mainline, verbo)
-     struct objfile *objfile;
-     int mainline;
-     int verbo;
+new_symfile_objfile (struct objfile *objfile, int mainline, int verbo)
 {
 
   /* If this is the main symbol file we have to clean up all users of the
@@ -829,12 +797,8 @@ new_symfile_objfile (objfile, mainline, verbo)
    Upon failure, jumps back to command level (never returns). */
 
 struct objfile *
-symbol_file_add (name, from_tty, addrs, mainline, flags)
-     char *name;
-     int from_tty;
-     struct section_addr_info *addrs;
-     int mainline;
-     int flags;
+symbol_file_add (char *name, int from_tty, struct section_addr_info *addrs,
+                int mainline, int flags)
 {
   struct objfile *objfile;
   struct partial_symtab *psymtab;
@@ -931,6 +895,62 @@ symbol_file_add (name, from_tty, addrs, mainline, flags)
   return (objfile);
 }
 
+/* Call symbol_file_add() with default values and update whatever is
+   affected by the loading of a new main().
+   Used when the file is supplied in the gdb command line
+   and by some targets with special loading requirements.
+   The auxiliary function, symbol_file_add_main_1(), has the flags
+   argument for the switches that can only be specified in the symbol_file
+   command itself.  */
+   
+void
+symbol_file_add_main (char *args, int from_tty)
+{
+  symbol_file_add_main_1 (args, from_tty, 0);
+}
+
+static void
+symbol_file_add_main_1 (char *args, int from_tty, int flags)
+{
+  symbol_file_add (args, from_tty, NULL, 1, flags);
+
+#ifdef HPUXHPPA
+  RESET_HP_UX_GLOBALS ();
+#endif
+
+  /* Getting new symbols may change our opinion about
+     what is frameless.  */
+  reinit_frame_cache ();
+
+  set_initial_language ();
+}
+
+void
+symbol_file_clear (int from_tty)
+{
+  if ((have_full_symbols () || have_partial_symbols ())
+      && from_tty
+      && !query ("Discard symbol table from `%s'? ",
+                symfile_objfile->name))
+    error ("Not confirmed.");
+    free_all_objfiles ();
+
+    /* solib descriptors may have handles to objfiles.  Since their
+       storage has just been released, we'd better wipe the solib
+       descriptors as well.
+     */
+#if defined(SOLIB_RESTART)
+    SOLIB_RESTART ();
+#endif
+
+    symfile_objfile = NULL;
+    if (from_tty)
+      printf_unfiltered ("No symbol file now.\n");
+#ifdef HPUXHPPA
+    RESET_HP_UX_GLOBALS ();
+#endif
+}
+
 /* This is the symbol-file command.  Read the file, analyze its
    symbols, and add a struct symtab to a symtab list.  The syntax of
    the command is rather bizarre--(1) buildargv implements various
@@ -946,9 +966,7 @@ symbol_file_add (name, from_tty, addrs, mainline, flags)
    and pass that to symbol_file_add(). This is no longer supported. */
 
 void
-symbol_file_command (args, from_tty)
-     char *args;
-     int from_tty;
+symbol_file_command (char *args, int from_tty)
 {
   char **argv;
   char *name = NULL;
@@ -959,27 +977,7 @@ symbol_file_command (args, from_tty)
 
   if (args == NULL)
     {
-      if ((have_full_symbols () || have_partial_symbols ())
-         && from_tty
-         && !query ("Discard symbol table from `%s'? ",
-                    symfile_objfile->name))
-       error ("Not confirmed.");
-      free_all_objfiles ();
-
-      /* solib descriptors may have handles to objfiles.  Since their
-         storage has just been released, we'd better wipe the solib
-         descriptors as well.
-       */
-#if defined(SOLIB_RESTART)
-      SOLIB_RESTART ();
-#endif
-
-      symfile_objfile = NULL;
-      if (from_tty)
-         printf_unfiltered ("No symbol file now.\n");
-#ifdef HPUXHPPA
-      RESET_HP_UX_GLOBALS ();
-#endif
+      symbol_file_clear (from_tty);
     }
   else
     {
@@ -1001,15 +999,8 @@ symbol_file_command (args, from_tty)
              else
                {
                   name = *argv;
-                 symbol_file_add (name, from_tty, NULL, 1, flags);
-#ifdef HPUXHPPA
-                 RESET_HP_UX_GLOBALS ();
-#endif
-                 /* Getting new symbols may change our opinion about
-                    what is frameless.  */
-                 reinit_frame_cache ();
 
-                 set_initial_language ();
+                 symbol_file_add_main_1 (name, from_tty, flags);
                }
          argv++;
        }
@@ -1018,7 +1009,6 @@ symbol_file_command (args, from_tty)
        {
          error ("no symbol file name was specified");
        }
-      TUIDO (((TuiOpaqueFuncPtr) tuiDisplayMainFunction));
       do_cleanups (cleanups);
     }
 }
@@ -1034,7 +1024,7 @@ symbol_file_command (args, from_tty)
    FIXME.  */
 
 static void
-set_initial_language ()
+set_initial_language (void)
 {
   struct partial_symtab *pst;
   enum language lang = language_unknown;
@@ -1062,8 +1052,7 @@ set_initial_language ()
    In case of trouble, error() is called.  */
 
 bfd *
-symfile_bfd_open (name)
-     char *name;
+symfile_bfd_open (char *name)
 {
   bfd *sym_bfd;
   int desc;
@@ -1075,7 +1064,7 @@ symfile_bfd_open (name)
 
   /* Look down path for it, allocate 2nd new malloc'd copy.  */
   desc = openp (getenv ("PATH"), 1, name, O_RDONLY | O_BINARY, 0, &absolute_name);
-#if defined(__GO32__) || defined(_WIN32)
+#if defined(__GO32__) || defined(_WIN32) || defined (__CYGWIN__)
   if (desc < 0)
     {
       char *exename = alloca (strlen (name) + 5);
@@ -1086,10 +1075,10 @@ symfile_bfd_open (name)
 #endif
   if (desc < 0)
     {
-      make_cleanup (free, name);
+      make_cleanup (xfree, name);
       perror_with_name (name);
     }
-  free (name);                 /* Free 1st new malloc'd copy */
+  xfree (name);                        /* Free 1st new malloc'd copy */
   name = absolute_name;                /* Keep 2nd malloc'd copy in bfd */
   /* It'll be freed in free_objfile(). */
 
@@ -1097,7 +1086,7 @@ symfile_bfd_open (name)
   if (!sym_bfd)
     {
       close (desc);
-      make_cleanup (free, name);
+      make_cleanup (xfree, name);
       error ("\"%s\": can't open to read symbols: %s.", name,
             bfd_errmsg (bfd_get_error ()));
     }
@@ -1109,7 +1098,7 @@ symfile_bfd_open (name)
          on error it does not free all the storage associated with the
          bfd).  */
       bfd_close (sym_bfd);     /* This also closes desc */
-      make_cleanup (free, name);
+      make_cleanup (xfree, name);
       error ("\"%s\": can't read symbols: %s.", name,
             bfd_errmsg (bfd_get_error ()));
     }
@@ -1122,8 +1111,7 @@ symfile_bfd_open (name)
    to handle. */
 
 void
-add_symtab_fns (sf)
-     struct sym_fns *sf;
+add_symtab_fns (struct sym_fns *sf)
 {
   sf->next = symtab_fns;
   symtab_fns = sf;
@@ -1136,18 +1124,12 @@ add_symtab_fns (sf)
    symbol file.  */
 
 static void
-find_sym_fns (objfile)
-     struct objfile *objfile;
+find_sym_fns (struct objfile *objfile)
 {
   struct sym_fns *sf;
   enum bfd_flavour our_flavour = bfd_get_flavour (objfile->obfd);
   char *our_target = bfd_get_target (objfile->obfd);
 
-  /* Special kludge for RS/6000 and PowerMac.  See xcoffread.c.  */
-  if (STREQ (our_target, "aixcoff-rs6000") ||
-      STREQ (our_target, "xcoff-powermac"))
-    our_flavour = (enum bfd_flavour) -1;
-
   /* Special kludge for apollo.  See dstread.c.  */
   if (STREQN (our_target, "apollo", 6))
     our_flavour = (enum bfd_flavour) -2;
@@ -1167,9 +1149,7 @@ find_sym_fns (objfile)
 /* This function runs the load command of our current target.  */
 
 static void
-load_command (arg, from_tty)
-     char *arg;
-     int from_tty;
+load_command (char *arg, int from_tty)
 {
   if (arg == NULL)
     arg = get_exec_file (1);
@@ -1206,7 +1186,7 @@ generic_load (char *args, int from_tty)
   /* Parse the input argument - the user can specify a load offset as
      a second argument. */
   filename = xmalloc (strlen (args) + 1);
-  old_cleanups = make_cleanup (free, filename);
+  old_cleanups = make_cleanup (xfree, filename);
   strcpy (filename, args);
   offptr = strchr (filename, ' ');
   if (offptr != NULL)
@@ -1266,7 +1246,7 @@ generic_load (char *args, int from_tty)
                block_size = size;
 
              buffer = xmalloc (size);
-             old_chain = make_cleanup (free, buffer);
+             old_chain = make_cleanup (xfree, buffer);
 
              /* Is this really necessary?  I guess it gives the user something
                 to look at during a long download.  */
@@ -1303,7 +1283,7 @@ generic_load (char *args, int from_tty)
                          that.  remote.c could implement that method
                          using the ``qCRC'' packet.  */
                      char *check = xmalloc (len);
-                     struct cleanup *verify_cleanups = make_cleanup (free, check);
+                     struct cleanup *verify_cleanups = make_cleanup (xfree, check);
                      if (target_read_memory (lma, check, len) != 0)
                        error ("Download verify read failed at 0x%s",
                               paddr (lma));
@@ -1376,9 +1356,8 @@ generic_load (char *args, int from_tty)
    function signature). */
 
 void
-report_transfer_performance (data_count, start_time, end_time)
-     unsigned long data_count;
-     time_t start_time, end_time;
+report_transfer_performance (unsigned long data_count, time_t start_time,
+                            time_t end_time)
 {
   print_transfer_performance (gdb_stdout, data_count, end_time - start_time, 0);
 }
@@ -1432,9 +1411,7 @@ print_transfer_performance (struct ui_file *stream,
 
 /* ARGSUSED */
 static void
-add_symbol_file_command (args, from_tty)
-     char *args;
-     int from_tty;
+add_symbol_file_command (char *args, int from_tty)
 {
   char *filename = NULL;
   int flags = OBJF_USERLOADED;
@@ -1454,7 +1431,7 @@ add_symbol_file_command (args, from_tty)
   } sect_opts[SECT_OFF_MAX];
 
   struct section_addr_info section_addrs;
-  struct cleanup *my_cleanups;
+  struct cleanup *my_cleanups = make_cleanup (null_cleanup, NULL);
 
   dont_repeat ();
 
@@ -1490,53 +1467,56 @@ add_symbol_file_command (args, from_tty)
        {
          /* The first argument is the file name. */
          filename = tilde_expand (arg);
-         my_cleanups = make_cleanup (free, filename);
-       }
-      else if (argcnt == 1)
-       {
-         /* The second argument is always the text address at which
-            to load the program. */
-         sect_opts[section_index].name = ".text";
-         sect_opts[section_index].value = arg;
-         section_index++;                
+         make_cleanup (xfree, filename);
        }
       else
-       {
-         /* It's an option (starting with '-') or it's an argument
-            to an option */
-
-         if (*arg == '-')
-           {
-             if (strcmp (arg, "-mapped") == 0)
-               flags |= OBJF_MAPPED;
-             else if (strcmp (arg, "-readnow") == 0)
-               flags |= OBJF_READNOW;
-             else if (strcmp (arg, "-s") == 0)
-               {
-                 if (section_index >= SECT_OFF_MAX)
-                   error ("Too many sections specified.");
-                 expecting_sec_name = 1;
-                 expecting_sec_addr = 1;
-               }
-           }
-         else
-           {
-             if (expecting_sec_name)
-               {
-                 sect_opts[section_index].name = arg;
-                 expecting_sec_name = 0;
-               }
-             else
-               if (expecting_sec_addr)
+       if (argcnt == 1)
+         {
+           /* The second argument is always the text address at which
+               to load the program. */
+           sect_opts[section_index].name = ".text";
+           sect_opts[section_index].value = arg;
+           section_index++;              
+         }
+       else
+         {
+           /* It's an option (starting with '-') or it's an argument
+              to an option */
+
+           if (*arg == '-')
+             {
+               if (strcmp (arg, "-mapped") == 0)
+                 flags |= OBJF_MAPPED;
+               else 
+                 if (strcmp (arg, "-readnow") == 0)
+                   flags |= OBJF_READNOW;
+                 else 
+                   if (strcmp (arg, "-s") == 0)
+                     {
+                       if (section_index >= SECT_OFF_MAX)
+                         error ("Too many sections specified.");
+                       expecting_sec_name = 1;
+                       expecting_sec_addr = 1;
+                     }
+             }
+           else
+             {
+               if (expecting_sec_name)
                  {
-                   sect_opts[section_index].value = arg;
-                   expecting_sec_addr = 0;
-                   section_index++;              
+                   sect_opts[section_index].name = arg;
+                   expecting_sec_name = 0;
                  }
                else
-                 error ("USAGE: add-symbol-file <filename> <textaddress> [-mapped] [-readnow] [-s <secname> <addr>]*");
-           }
-       }
+                 if (expecting_sec_addr)
+                   {
+                     sect_opts[section_index].value = arg;
+                     expecting_sec_addr = 0;
+                     section_index++;            
+                   }
+                 else
+                   error ("USAGE: add-symbol-file <filename> <textaddress> [-mapped] [-readnow] [-s <secname> <addr>]*");
+             }
+         }
       argcnt++;
     }
 
@@ -1587,9 +1567,7 @@ add_symbol_file_command (args, from_tty)
 }
 \f
 static void
-add_shared_symbol_files_command (args, from_tty)
-     char *args;
-     int from_tty;
+add_shared_symbol_files_command (char *args, int from_tty)
 {
 #ifdef ADD_SHARED_SYMBOL_FILES
   ADD_SHARED_SYMBOL_FILES (args, from_tty);
@@ -1600,7 +1578,7 @@ add_shared_symbol_files_command (args, from_tty)
 \f
 /* Re-read symbols if a symbol-file has changed.  */
 void
-reread_symbols ()
+reread_symbols (void)
 {
   struct objfile *objfile;
   long new_modtime;
@@ -1721,13 +1699,13 @@ reread_symbols ()
              /* obstack_specify_allocation also initializes the obstack so
                 it is empty.  */
              obstack_specify_allocation (&objfile->psymbol_cache.cache, 0, 0,
-                                         xmalloc, free);
+                                         xmalloc, xfree);
              obstack_specify_allocation (&objfile->psymbol_obstack, 0, 0,
-                                         xmalloc, free);
+                                         xmalloc, xfree);
              obstack_specify_allocation (&objfile->symbol_obstack, 0, 0,
-                                         xmalloc, free);
+                                         xmalloc, xfree);
              obstack_specify_allocation (&objfile->type_obstack, 0, 0,
-                                         xmalloc, free);
+                                         xmalloc, xfree);
              if (build_objfile_section_table (objfile))
                {
                  error ("Can't find the file sections in `%s': %s",
@@ -1784,7 +1762,7 @@ reread_symbols ()
              reread_one = 1;
 
              /* Call this after reading in a new symbol table to give target
-                dependant code a crack at the new symbols.  For instance, this
+                dependent code a crack at the new symbols.  For instance, this
                 could be used to update the values of target-specific symbols GDB
                 needs to keep track of (such as _sigtramp, or whatever).  */
 
@@ -1810,18 +1788,16 @@ static filename_language *filename_language_table;
 static int fl_table_size, fl_table_next;
 
 static void
-add_filename_language (ext, lang)
-     char *ext;
-     enum language lang;
+add_filename_language (char *ext, enum language lang)
 {
   if (fl_table_next >= fl_table_size)
     {
       fl_table_size += 10;
-      filename_language_table = realloc (filename_language_table,
-                                        fl_table_size);
+      filename_language_table = xrealloc (filename_language_table,
+                                         fl_table_size);
     }
 
-  filename_language_table[fl_table_next].ext = strsave (ext);
+  filename_language_table[fl_table_next].ext = xstrdup (ext);
   filename_language_table[fl_table_next].lang = lang;
   fl_table_next++;
 }
@@ -1829,9 +1805,7 @@ add_filename_language (ext, lang)
 static char *ext_args;
 
 static void
-set_ext_lang_command (args, from_tty)
-     char *args;
-     int from_tty;
+set_ext_lang_command (char *args, int from_tty)
 {
   int i;
   char *cp = ext_args;
@@ -1881,16 +1855,14 @@ set_ext_lang_command (args, from_tty)
       /*   query ("Really make files of type %s '%s'?", */
       /*          ext_args, language_str (lang));           */
 
-      free (filename_language_table[i].ext);
-      filename_language_table[i].ext = strsave (ext_args);
+      xfree (filename_language_table[i].ext);
+      filename_language_table[i].ext = xstrdup (ext_args);
       filename_language_table[i].lang = lang;
     }
 }
 
 static void
-info_ext_lang_command (args, from_tty)
-     char *args;
-     int from_tty;
+info_ext_lang_command (char *args, int from_tty)
 {
   int i;
 
@@ -1903,7 +1875,7 @@ info_ext_lang_command (args, from_tty)
 }
 
 static void
-init_filename_language_table ()
+init_filename_language_table (void)
 {
   if (fl_table_size == 0)      /* protect against repetition */
     {
@@ -1927,12 +1899,14 @@ init_filename_language_table ()
       add_filename_language (".F", language_fortran);
       add_filename_language (".s", language_asm);
       add_filename_language (".S", language_asm);
+      add_filename_language (".pas", language_pascal);
+      add_filename_language (".p", language_pascal);
+      add_filename_language (".pp", language_pascal);
     }
 }
 
 enum language
-deduce_language_from_filename (filename)
-     char *filename;
+deduce_language_from_filename (char *filename)
 {
   int i;
   char *cp;
@@ -1961,9 +1935,7 @@ deduce_language_from_filename (filename)
  */
 
 struct symtab *
-allocate_symtab (filename, objfile)
-     char *filename;
-     struct objfile *objfile;
+allocate_symtab (char *filename, struct objfile *objfile)
 {
   register struct symtab *symtab;
 
@@ -1995,9 +1967,7 @@ allocate_symtab (filename, objfile)
 }
 
 struct partial_symtab *
-allocate_psymtab (filename, objfile)
-     char *filename;
-     struct objfile *objfile;
+allocate_psymtab (char *filename, struct objfile *objfile)
 {
   struct partial_symtab *psymtab;
 
@@ -2039,8 +2009,7 @@ allocate_psymtab (filename, objfile)
 }
 
 void
-discard_psymtab (pst)
-     struct partial_symtab *pst;
+discard_psymtab (struct partial_symtab *pst)
 {
   struct partial_symtab **prev_pst;
 
@@ -2069,7 +2038,7 @@ discard_psymtab (pst)
    table data.  */
 
 void
-clear_symtab_users ()
+clear_symtab_users (void)
 {
   /* Someday, we should do better than this, by only blowing away
      the things that really need to be blown.  */
@@ -2125,7 +2094,7 @@ static int clear_symtab_users_queued;
 static int clear_symtab_users_done;
 
 static void
-clear_symtab_users_once ()
+clear_symtab_users_once (void)
 {
   /* Enforce once-per-`do_cleanups'-semantics */
   if (clear_symtab_users_queued <= clear_symtab_users_done)
@@ -2139,8 +2108,7 @@ clear_symtab_users_once ()
 /* Delete the specified psymtab, and any others that reference it.  */
 
 static void
-cashier_psymtab (pst)
-     struct partial_symtab *pst;
+cashier_psymtab (struct partial_symtab *pst)
 {
   struct partial_symtab *ps, *pprev = NULL;
   int i;
@@ -2190,15 +2158,14 @@ cashier_psymtab (pst)
    it is not called for subsidiary files such as .h files.
 
    Return value is 1 if we blew away the environment, 0 if not.
-   FIXME.  The return valu appears to never be used.
+   FIXME.  The return value appears to never be used.
 
    FIXME.  I think this is not the best way to do this.  We should
    work on being gentler to the environment while still cleaning up
    all stray pointers into the freed symtab.  */
 
 int
-free_named_symtabs (name)
-     char *name;
+free_named_symtabs (char *name)
 {
 #if 0
   /* FIXME:  With the new method of each objfile having it's own
@@ -2304,14 +2271,10 @@ again2:
    FILENAME is the name of the symbol-file we are reading from. */
 
 struct partial_symtab *
-start_psymtab_common (objfile, section_offsets,
-                     filename, textlow, global_syms, static_syms)
-     struct objfile *objfile;
-     struct section_offsets *section_offsets;
-     char *filename;
-     CORE_ADDR textlow;
-     struct partial_symbol **global_syms;
-     struct partial_symbol **static_syms;
+start_psymtab_common (struct objfile *objfile,
+                     struct section_offsets *section_offsets, char *filename,
+                     CORE_ADDR textlow, struct partial_symbol **global_syms,
+                     struct partial_symbol **static_syms)
 {
   struct partial_symtab *psymtab;
 
@@ -2328,17 +2291,11 @@ start_psymtab_common (objfile, section_offsets,
    Since one arg is a struct, we pass in a ptr and deref it (sigh).  */
 
 void
-add_psymbol_to_list (name, namelength, namespace, class, list, val, coreaddr,
-                    language, objfile)
-     char *name;
-     int namelength;
-     namespace_enum namespace;
-     enum address_class class;
-     struct psymbol_allocation_list *list;
-     long val;                 /* Value as a long */
-     CORE_ADDR coreaddr;       /* Value as a CORE_ADDR */
-     enum language language;
-     struct objfile *objfile;
+add_psymbol_to_list (char *name, int namelength, namespace_enum namespace,
+                    enum address_class class,
+                    struct psymbol_allocation_list *list, long val,    /* Value as a long */
+                    CORE_ADDR coreaddr,        /* Value as a CORE_ADDR */
+                    enum language language, struct objfile *objfile)
 {
   register struct partial_symbol *psym;
   char *buf = alloca (namelength + 1);
@@ -2383,19 +2340,13 @@ add_psymbol_to_list (name, namelength, namespace, class, list, val, coreaddr,
  * name. */
 
 void
-add_psymbol_with_dem_name_to_list (name, namelength, dem_name, dem_namelength,
-                  namespace, class, list, val, coreaddr, language, objfile)
-     char *name;
-     int namelength;
-     char *dem_name;
-     int dem_namelength;
-     namespace_enum namespace;
-     enum address_class class;
-     struct psymbol_allocation_list *list;
-     long val;                 /* Value as a long */
-     CORE_ADDR coreaddr;       /* Value as a CORE_ADDR */
-     enum language language;
-     struct objfile *objfile;
+add_psymbol_with_dem_name_to_list (char *name, int namelength, char *dem_name,
+                                  int dem_namelength, namespace_enum namespace,
+                                  enum address_class class,
+                                  struct psymbol_allocation_list *list, long val,      /* Value as a long */
+                                  CORE_ADDR coreaddr,  /* Value as a CORE_ADDR */
+                                  enum language language,
+                                  struct objfile *objfile)
 {
   register struct partial_symbol *psym;
   char *buf = alloca (namelength + 1);
@@ -2458,9 +2409,7 @@ add_psymbol_with_dem_name_to_list (name, namelength, dem_name, dem_namelength,
 /* Initialize storage for partial symbols.  */
 
 void
-init_psymbol_list (objfile, total_symbols)
-     struct objfile *objfile;
-     int total_symbols;
+init_psymbol_list (struct objfile *objfile, int total_symbols)
 {
   /* Free any previously allocated psymbol lists.  */
 
@@ -2558,8 +2507,7 @@ void (*target_overlay_update) (struct obj_section *) = simple_overlay_update;
    SECTION is loaded at an address different from where it will "run".  */
 
 int
-section_is_overlay (section)
-     asection *section;
+section_is_overlay (asection *section)
 {
   if (overlay_debugging)
     if (section && section->lma != 0 &&
@@ -2573,7 +2521,7 @@ section_is_overlay (section)
    Invalidate the mapped state of all overlay sections (mark it as stale).  */
 
 static void
-overlay_invalidate_all ()
+overlay_invalidate_all (void)
 {
   struct objfile *objfile;
   struct obj_section *sect;
@@ -2594,8 +2542,7 @@ overlay_invalidate_all ()
    section is stale, then call TARGET_OVERLAY_UPDATE to refresh it.  */
 
 static int
-overlay_is_mapped (osect)
-     struct obj_section *osect;
+overlay_is_mapped (struct obj_section *osect)
 {
   if (osect == 0 || !section_is_overlay (osect->the_bfd_section))
     return 0;
@@ -2628,8 +2575,7 @@ overlay_is_mapped (osect)
    Returns true if section is an overlay, and is currently mapped.  */
 
 int
-section_is_mapped (section)
-     asection *section;
+section_is_mapped (asection *section)
 {
   struct objfile *objfile;
   struct obj_section *osect;
@@ -2647,9 +2593,7 @@ section_is_mapped (section)
    If PC falls into the lma range of SECTION, return true, else false.  */
 
 CORE_ADDR
-pc_in_unmapped_range (pc, section)
-     CORE_ADDR pc;
-     asection *section;
+pc_in_unmapped_range (CORE_ADDR pc, asection *section)
 {
   int size;
 
@@ -2667,9 +2611,7 @@ pc_in_unmapped_range (pc, section)
    If PC falls into the vma range of SECTION, return true, else false.  */
 
 CORE_ADDR
-pc_in_mapped_range (pc, section)
-     CORE_ADDR pc;
-     asection *section;
+pc_in_mapped_range (CORE_ADDR pc, asection *section)
 {
   int size;
 
@@ -2688,9 +2630,7 @@ pc_in_mapped_range (pc, section)
    May be the same as PC.  */
 
 CORE_ADDR
-overlay_unmapped_address (pc, section)
-     CORE_ADDR pc;
-     asection *section;
+overlay_unmapped_address (CORE_ADDR pc, asection *section)
 {
   if (overlay_debugging)
     if (section && section_is_overlay (section) &&
@@ -2705,9 +2645,7 @@ overlay_unmapped_address (pc, section)
    May be the same as PC.  */
 
 CORE_ADDR
-overlay_mapped_address (pc, section)
-     CORE_ADDR pc;
-     asection *section;
+overlay_mapped_address (CORE_ADDR pc, asection *section)
 {
   if (overlay_debugging)
     if (section && section_is_overlay (section) &&
@@ -2723,9 +2661,7 @@ overlay_mapped_address (pc, section)
    depending on whether the section is mapped or not.  */
 
 CORE_ADDR
-symbol_overlayed_address (address, section)
-     CORE_ADDR address;
-     asection *section;
+symbol_overlayed_address (CORE_ADDR address, asection *section)
 {
   if (overlay_debugging)
     {
@@ -2754,8 +2690,7 @@ symbol_overlayed_address (address, section)
    Else if PC matches an unmapped section's LMA, return that section.  */
 
 asection *
-find_pc_overlay (pc)
-     CORE_ADDR pc;
+find_pc_overlay (CORE_ADDR pc)
 {
   struct objfile *objfile;
   struct obj_section *osect, *best_match = NULL;
@@ -2782,8 +2717,7 @@ find_pc_overlay (pc)
    currently marked as MAPPED, return that section.  Else return NULL.  */
 
 asection *
-find_pc_mapped_section (pc)
-     CORE_ADDR pc;
+find_pc_mapped_section (CORE_ADDR pc)
 {
   struct objfile *objfile;
   struct obj_section *osect;
@@ -2801,9 +2735,7 @@ find_pc_mapped_section (pc)
    Print a list of mapped sections and their PC ranges */
 
 void
-list_overlays_command (args, from_tty)
-     char *args;
-     int from_tty;
+list_overlays_command (char *args, int from_tty)
 {
   int nmapped = 0;
   struct objfile *objfile;
@@ -2842,9 +2774,7 @@ list_overlays_command (args, from_tty)
    Mark the named section as mapped (ie. residing at its VMA address).  */
 
 void
-map_overlay_command (args, from_tty)
-     char *args;
-     int from_tty;
+map_overlay_command (char *args, int from_tty)
 {
   struct objfile *objfile, *objfile2;
   struct obj_section *sec, *sec2;
@@ -2895,9 +2825,7 @@ the 'overlay manual' command.");
    (ie. resident in its LMA address range, rather than the VMA range).  */
 
 void
-unmap_overlay_command (args, from_tty)
-     char *args;
-     int from_tty;
+unmap_overlay_command (char *args, int from_tty)
 {
   struct objfile *objfile;
   struct obj_section *sec;
@@ -2927,9 +2855,7 @@ the 'overlay manual' command.");
    Possibly this should be done via a set/show command. */
 
 static void
-overlay_auto_command (args, from_tty)
-     char *args;
-     int from_tty;
+overlay_auto_command (char *args, int from_tty)
 {
   overlay_debugging = -1;
   if (info_verbose)
@@ -2941,9 +2867,7 @@ overlay_auto_command (args, from_tty)
    Possibly this should be done via a set/show command. */
 
 static void
-overlay_manual_command (args, from_tty)
-     char *args;
-     int from_tty;
+overlay_manual_command (char *args, int from_tty)
 {
   overlay_debugging = 1;
   if (info_verbose)
@@ -2955,9 +2879,7 @@ overlay_manual_command (args, from_tty)
    Possibly this should be done via a set/show command. */
 
 static void
-overlay_off_command (args, from_tty)
-     char *args;
-     int from_tty;
+overlay_off_command (char *args, int from_tty)
 {
   overlay_debugging = 0;
   if (info_verbose)
@@ -2965,9 +2887,7 @@ overlay_off_command (args, from_tty)
 }
 
 static void
-overlay_load_command (args, from_tty)
-     char *args;
-     int from_tty;
+overlay_load_command (char *args, int from_tty)
 {
   if (target_overlay_update)
     (*target_overlay_update) (NULL);
@@ -2982,9 +2902,7 @@ overlay_load_command (args, from_tty)
 struct cmd_list_element *overlaylist;
 
 static void
-overlay_command (args, from_tty)
-     char *args;
-     int from_tty;
+overlay_command (char *args, int from_tty)
 {
   printf_unfiltered
     ("\"overlay\" must be followed by the name of an overlay command.\n");
@@ -3047,10 +2965,10 @@ enum ovly_index
 
 /* Throw away the cached copy of _ovly_table */
 static void
-simple_free_overlay_table ()
+simple_free_overlay_table (void)
 {
   if (cache_ovly_table)
-    free (cache_ovly_table);
+    xfree (cache_ovly_table);
   cache_novlys = 0;
   cache_ovly_table = NULL;
   cache_ovly_table_base = 0;
@@ -3059,10 +2977,10 @@ simple_free_overlay_table ()
 #if 0
 /* Throw away the cached copy of _ovly_region_table */
 static void
-simple_free_overlay_region_table ()
+simple_free_overlay_region_table (void)
 {
   if (cache_ovly_region_table)
-    free (cache_ovly_region_table);
+    xfree (cache_ovly_region_table);
   cache_novly_regions = 0;
   cache_ovly_region_table = NULL;
   cache_ovly_region_table_base = 0;
@@ -3072,10 +2990,7 @@ simple_free_overlay_region_table ()
 /* Read an array of ints from the target into a local buffer.
    Convert to host order.  int LEN is number of ints  */
 static void
-read_target_long_array (memaddr, myaddr, len)
-     CORE_ADDR memaddr;
-     unsigned int *myaddr;
-     int len;
+read_target_long_array (CORE_ADDR memaddr, unsigned int *myaddr, int len)
 {
   char *buf = alloca (len * TARGET_LONG_BYTES);
   int i;
@@ -3089,7 +3004,7 @@ read_target_long_array (memaddr, myaddr, len)
 /* Find and grab a copy of the target _ovly_table
    (and _novlys, which is needed for the table's size) */
 static int
-simple_read_overlay_table ()
+simple_read_overlay_table (void)
 {
   struct minimal_symbol *msym;
 
@@ -3122,7 +3037,7 @@ simple_read_overlay_table ()
 /* Find and grab a copy of the target _ovly_region_table
    (and _novly_regions, which is needed for the table's size) */
 static int
-simple_read_overlay_region_table ()
+simple_read_overlay_region_table (void)
 {
   struct minimal_symbol *msym;
 
@@ -3161,8 +3076,7 @@ simple_read_overlay_region_table ()
    success, 0 for failure.  */
 
 static int
-simple_overlay_update_1 (osect)
-     struct obj_section *osect;
+simple_overlay_update_1 (struct obj_section *osect)
 {
   int i, size;
 
@@ -3196,8 +3110,7 @@ simple_overlay_update_1 (osect)
    re-read the entire cache, and go ahead and update all sections.  */
 
 static void
-simple_overlay_update (osect)
-     struct obj_section *osect;
+simple_overlay_update (struct obj_section *osect)
 {
   struct objfile *objfile;
 
@@ -3242,7 +3155,7 @@ simple_overlay_update (osect)
 
 
 void
-_initialize_symfile ()
+_initialize_symfile (void)
 {
   struct cmd_list_element *c;
 
This page took 0.094248 seconds and 4 git commands to generate.