2002-04-25 Elena Zannoni <ezannoni@redhat.com>
[deliverable/binutils-gdb.git] / gdb / buildsym.c
index 4fd969dfd2c239a6b53fab361988f7d63bf35fd9..0e4f9b8eca0b8821afa3eb8234285b5dbcbb6da3 100644 (file)
@@ -1,6 +1,6 @@
 /* Support routines for building symbol tables in GDB's internal format.
    Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
-   1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -38,6 +38,7 @@
 #include "expression.h"                /* For "enum exp_opcode" used by... */
 #include "language.h"          /* For "longest_local_hex_string_custom" */
 #include "bcache.h"
+#include "filenames.h"         /* For DOSish file names */
 /* Ask buildsym.h to define the vars it normally declares `extern'.  */
 #define        EXTERN
 /**/
@@ -274,9 +275,8 @@ finish_block (struct symbol *symbol, struct pending **listhead,
             parameter symbols. */
          int nparams = 0, iparams;
          struct symbol *sym;
-         for (i = 0; i < BLOCK_NSYMS (block); i++)
+         ALL_BLOCK_SYMBOLS (block, i, sym)
            {
-             sym = BLOCK_SYM (block, i);
              switch (SYMBOL_CLASS (sym))
                {
                case LOC_ARG:
@@ -322,6 +322,7 @@ finish_block (struct symbol *symbol, struct pending **listhead,
                    case LOC_BASEREG_ARG:
                    case LOC_LOCAL_ARG:
                      TYPE_FIELD_TYPE (ftype, iparams) = SYMBOL_TYPE (sym);
+                     TYPE_FIELD_ARTIFICIAL (ftype, iparams) = 0;
                      iparams++;
                      break;
                    case LOC_UNDEF:
@@ -532,7 +533,7 @@ start_subfile (char *name, char *dirname)
 
   for (subfile = subfiles; subfile; subfile = subfile->next)
     {
-      if (STREQ (subfile->name, name))
+      if (FILENAME_CMP (subfile->name, name) == 0)
        {
          current_subfile = subfile;
          return;
@@ -726,7 +727,7 @@ record_line (register struct subfile *subfile, int line, CORE_ADDR pc)
 
   e = subfile->line_vector->item + subfile->line_vector->nitems++;
   e->line = line;
-  e->pc = pc;
+  e->pc = ADDR_BITS_REMOVE(pc);
 }
 
 /* Needed in order to sort line tables from IBM xcoff files.  Sigh!  */
This page took 0.092608 seconds and 4 git commands to generate.