Replace ../include/wait.h with gdb_wait.h.
[deliverable/binutils-gdb.git] / gdb / buildsym.c
index 63888d70416884e91a42afd452c9846f6f391587..867a5db7bcdd3b37379c3eca91b6ac5aa6e1b8f0 100644 (file)
@@ -1,21 +1,22 @@
 /* Support routines for building symbol tables in GDB's internal format.
-   Copyright 1986-1999 Free Software Foundation, Inc.
+   Copyright 1986-2000 Free Software Foundation, Inc.
 
-This file is part of GDB.
+   This file is part of GDB.
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 /* This module provides subroutines used for creating and adding to
    the symbol table.  These routines are called from various symbol-
@@ -35,7 +36,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "gdb_string.h"
 
 /* Ask buildsym.h to define the vars it normally declares `extern'.  */
-#define        EXTERN                  /**/
+#define        EXTERN
+/**/
 #include "buildsym.h"          /* Our own declarations */
 #undef EXTERN
 
@@ -53,8 +55,7 @@ static struct pending *free_pendings;
 
 static int have_line_numbers;
 \f
-static int
-compare_line_numbers PARAMS ((const void *, const void *));
+static int compare_line_numbers (const void *ln1p, const void *ln2p);
 \f
 
 /* Initial sizes of data structures.  These are realloc'd larger if
@@ -87,9 +88,7 @@ struct complaint blockvector_complaint =
 /* Add a symbol to one of the lists of symbols.  */
 
 void
-add_symbol_to_list (symbol, listhead)
-     struct symbol *symbol;
-     struct pending **listhead;
+add_symbol_to_list (struct symbol *symbol, struct pending **listhead)
 {
   register struct pending *link;
 
@@ -123,10 +122,7 @@ add_symbol_to_list (symbol, listhead)
    '\0'-terminated; LENGTH is the length of the name.  */
 
 struct symbol *
-find_symbol_in_list (list, name, length)
-     struct pending *list;
-     char *name;
-     int length;
+find_symbol_in_list (struct pending *list, char *name, int length)
 {
   int j;
   char *pp;
@@ -152,15 +148,14 @@ find_symbol_in_list (list, name, length)
 
 /* ARGSUSED */
 void
-really_free_pendings (foo)
-     int foo;
+really_free_pendings (PTR dummy)
 {
   struct pending *next, *next1;
 
   for (next = free_pendings; next; next = next1)
     {
       next1 = next->next;
-      free ((PTR) next);
+      free ((void *) next);
     }
   free_pendings = NULL;
 
@@ -169,14 +164,14 @@ really_free_pendings (foo)
   for (next = file_symbols; next != NULL; next = next1)
     {
       next1 = next->next;
-      free ((PTR) next);
+      free ((void *) next);
     }
   file_symbols = NULL;
 
   for (next = global_symbols; next != NULL; next = next1)
     {
       next1 = next->next;
-      free ((PTR) next);
+      free ((void *) next);
     }
   global_symbols = NULL;
 }
@@ -184,7 +179,7 @@ really_free_pendings (foo)
 /* This function is called to discard any pending blocks. */
 
 void
-free_pending_blocks ()
+free_pending_blocks (void)
 {
 #if 0                          /* Now we make the links in the
                                   symbol_obstack, so don't free
@@ -194,7 +189,7 @@ free_pending_blocks ()
   for (bnext = pending_blocks; bnext; bnext = bnext1)
     {
       bnext1 = bnext->next;
-      free ((PTR) bnext);
+      free ((void *) bnext);
     }
 #endif
   pending_blocks = NULL;
@@ -205,12 +200,10 @@ free_pending_blocks ()
    file).  Put the block on the list of pending blocks.  */
 
 void
-finish_block (symbol, listhead, old_blocks, start, end, objfile)
-     struct symbol *symbol;
-     struct pending **listhead;
-     struct pending_block *old_blocks;
-     CORE_ADDR start, end;
-     struct objfile *objfile;
+finish_block (struct symbol *symbol, struct pending **listhead,
+             struct pending_block *old_blocks,
+             CORE_ADDR start, CORE_ADDR end,
+             struct objfile *objfile)
 {
   register struct pending *next, *next1;
   register struct block *block;
@@ -229,7 +222,7 @@ finish_block (symbol, listhead, old_blocks, start, end, objfile)
     }
 
   block = (struct block *) obstack_alloc (&objfile->symbol_obstack,
-    (sizeof (struct block) + ((i - 1) * sizeof (struct symbol *))));
+           (sizeof (struct block) + ((i - 1) * sizeof (struct symbol *))));
 
   /* Copy the symbols into the block.  */
 
@@ -391,7 +384,7 @@ finish_block (symbol, listhead, old_blocks, start, end, objfile)
              else
                {
                  complain (&innerblock_anon_complaint, BLOCK_START (pblock->block),
-                    BLOCK_END (pblock->block), BLOCK_START (block),
+                           BLOCK_END (pblock->block), BLOCK_START (block),
                            BLOCK_END (block));
                }
              if (BLOCK_START (pblock->block) < BLOCK_START (block))
@@ -416,10 +409,8 @@ finish_block (symbol, listhead, old_blocks, start, end, objfile)
    time.  This wastes a little space.  FIXME: Is it worth it?  */
 
 void
-record_pending_block (objfile, block, opblock)
-     struct objfile *objfile;
-     struct block *block;
-     struct pending_block *opblock;
+record_pending_block (struct objfile *objfile, struct block *block,
+                     struct pending_block *opblock)
 {
   register struct pending_block *pblock;
 
@@ -443,8 +434,7 @@ record_pending_block (objfile, block, opblock)
    that is done, it can be made static again. */
 
 struct blockvector *
-make_blockvector (objfile)
-     struct objfile *objfile;
+make_blockvector (struct objfile *objfile)
 {
   register struct pending_block *next;
   register struct blockvector *blockvector;
@@ -502,7 +492,7 @@ make_blockvector (objfile)
                 long.  Possible solutions include a version of
                 complain which takes a callback, a
                 sprintf_address_numeric to match
-                print_address_numeric, or a way to set up a GDB_FILE
+                print_address_numeric, or a way to set up a UI_FILE
                 which causes sprintf rather than fprintf to be
                 called.  */
 
@@ -522,9 +512,7 @@ make_blockvector (objfile)
    the directory in which it resides (or NULL if not known).  */
 
 void
-start_subfile (name, dirname)
-     char *name;
-     char *dirname;
+start_subfile (char *name, char *dirname)
 {
   register struct subfile *subfile;
 
@@ -583,7 +571,7 @@ start_subfile (name, dirname)
      program.  But to demangle we need to set the language to C++.  We
      can distinguish cfront code by the fact that it has #line
      directives which specify a file name ending in .C.
-  
+
      So if the filename of this subfile ends in .C, then change the
      language of any pending subfiles from C to C++.  We also accept
      any other C++ suffixes accepted by deduce_language_from_filename
@@ -624,9 +612,7 @@ start_subfile (name, dirname)
    directory name actually is (by checking for a trailing '/'). */
 
 void
-patch_subfile_names (subfile, name)
-     struct subfile *subfile;
-     char *name;
+patch_subfile_names (struct subfile *subfile, char *name)
 {
   if (subfile != NULL && subfile->dirname == NULL && subfile->name != NULL
       && subfile->name[strlen (subfile->name) - 1] == '/')
@@ -661,7 +647,7 @@ patch_subfile_names (subfile, name)
    order.  */
 
 void
-push_subfile ()
+push_subfile (void)
 {
   register struct subfile_stack *tem
   = (struct subfile_stack *) xmalloc (sizeof (struct subfile_stack));
@@ -676,7 +662,7 @@ push_subfile ()
 }
 
 char *
-pop_subfile ()
+pop_subfile (void)
 {
   register char *name;
   register struct subfile_stack *link = subfile_stack;
@@ -687,7 +673,7 @@ pop_subfile ()
     }
   name = link->name;
   subfile_stack = link->next;
-  free ((PTR) link);
+  free ((void *) link);
   return (name);
 }
 \f
@@ -695,10 +681,7 @@ pop_subfile ()
    line vector for SUBFILE.  */
 
 void
-record_line (subfile, line, pc)
-     register struct subfile *subfile;
-     int line;
-     CORE_ADDR pc;
+record_line (register struct subfile *subfile, int line, CORE_ADDR pc)
 {
   struct linetable_entry *e;
   /* Ignore the dummy line number in libg.o */
@@ -714,7 +697,7 @@ record_line (subfile, line, pc)
       subfile->line_vector_length = INITIAL_LINE_VECTOR_LENGTH;
       subfile->line_vector = (struct linetable *)
        xmalloc (sizeof (struct linetable)
-                + subfile->line_vector_length * sizeof (struct linetable_entry));
+          + subfile->line_vector_length * sizeof (struct linetable_entry));
       subfile->line_vector->nitems = 0;
       have_line_numbers = 1;
     }
@@ -737,9 +720,7 @@ record_line (subfile, line, pc)
 /* Needed in order to sort line tables from IBM xcoff files.  Sigh!  */
 
 static int
-compare_line_numbers (ln1p, ln2p)
-     const void *ln1p;
-     const void *ln2p;
+compare_line_numbers (const void *ln1p, const void *ln2p)
 {
   struct linetable_entry *ln1 = (struct linetable_entry *) ln1p;
   struct linetable_entry *ln2 = (struct linetable_entry *) ln2p;
@@ -763,10 +744,7 @@ compare_line_numbers (ln1p, ln2p)
    one original source file.  */
 
 void
-start_symtab (name, dirname, start_addr)
-     char *name;
-     char *dirname;
-     CORE_ADDR start_addr;
+start_symtab (char *name, char *dirname, CORE_ADDR start_addr)
 {
 
   last_source_file = name;
@@ -812,10 +790,7 @@ start_symtab (name, dirname, start_addr)
    never know about this empty file (FIXME). */
 
 struct symtab *
-end_symtab (end_addr, objfile, section)
-     CORE_ADDR end_addr;
-     struct objfile *objfile;
-     int section;
+end_symtab (CORE_ADDR end_addr, struct objfile *objfile, int section)
 {
   register struct symtab *symtab = NULL;
   register struct blockvector *blockvector;
@@ -882,7 +857,7 @@ end_symtab (end_addr, objfile, section)
   /* Cleanup any undefined types that have been left hanging around
      (this needs to be done before the finish_blocks so that
      file_symbols is still good).
-  
+
      Both cleanup_undefined_types and finish_global_stabs are stabs
      specific, but harmless for other symbol readers, since on gdb
      startup or when finished reading stabs, the state is set so these
@@ -948,7 +923,7 @@ end_symtab (end_addr, objfile, section)
              if (objfile->flags & OBJF_REORDERED)
                qsort (subfile->line_vector->item,
                       subfile->line_vector->nitems,
-                      sizeof (struct linetable_entry), compare_line_numbers);
+                    sizeof (struct linetable_entry), compare_line_numbers);
            }
 
          /* Now, allocate a symbol table.  */
@@ -995,8 +970,8 @@ end_symtab (end_addr, objfile, section)
          if (subfile->debugformat != NULL)
            {
              symtab->debugformat = obsavestring (subfile->debugformat,
-                                     strlen (subfile->debugformat),
-                                         &objfile->symbol_obstack);
+                                             strlen (subfile->debugformat),
+                                                 &objfile->symbol_obstack);
            }
 
          /* All symtabs for the main file and the subfiles share a
@@ -1007,23 +982,23 @@ end_symtab (end_addr, objfile, section)
        }
       if (subfile->name != NULL)
        {
-         free ((PTR) subfile->name);
+         free ((void *) subfile->name);
        }
       if (subfile->dirname != NULL)
        {
-         free ((PTR) subfile->dirname);
+         free ((void *) subfile->dirname);
        }
       if (subfile->line_vector != NULL)
        {
-         free ((PTR) subfile->line_vector);
+         free ((void *) subfile->line_vector);
        }
       if (subfile->debugformat != NULL)
        {
-         free ((PTR) subfile->debugformat);
+         free ((void *) subfile->debugformat);
        }
 
       nextsub = subfile->next;
-      free ((PTR) subfile);
+      free ((void *) subfile);
     }
 
   /* Set this for the main source file.  */
@@ -1043,9 +1018,7 @@ end_symtab (end_addr, objfile, section)
    context.  */
 
 struct context_stack *
-push_context (desc, valu)
-     int desc;
-     CORE_ADDR valu;
+push_context (int desc, CORE_ADDR valu)
 {
   register struct context_stack *new;
 
@@ -1054,7 +1027,7 @@ push_context (desc, valu)
       context_stack_size *= 2;
       context_stack = (struct context_stack *)
        xrealloc ((char *) context_stack,
-             (context_stack_size * sizeof (struct context_stack)));
+                 (context_stack_size * sizeof (struct context_stack)));
     }
 
   new = &context_stack[context_stack_depth++];
@@ -1074,8 +1047,7 @@ push_context (desc, valu)
 /* Compute a small integer hash code for the given name. */
 
 int
-hashname (name)
-     char *name;
+hashname (char *name)
 {
   register char *p = name;
   register int total = p[0];
@@ -1103,8 +1075,7 @@ hashname (name)
 \f
 
 void
-record_debugformat (format)
-     char *format;
+record_debugformat (char *format)
 {
   current_subfile->debugformat = savestring (format, strlen (format));
 }
@@ -1118,9 +1089,7 @@ record_debugformat (format)
    Void return. */
 
 void
-merge_symbol_lists (srclist, targetlist)
-     struct pending **srclist;
-     struct pending **targetlist;
+merge_symbol_lists (struct pending **srclist, struct pending **targetlist)
 {
   register int i;
 
This page took 0.02919 seconds and 4 git commands to generate.