* mips-dis.c: Add missing prototypes.
[deliverable/binutils-gdb.git] / binutils / ieee.c
index c03692821a40f029d7704f6f398d69a8f23c20b8..ad5ddc7d65cb3aed0b6adcd83e4d2703fb3b7ae6 100644 (file)
@@ -1,5 +1,5 @@
 /* ieee.c -- Read and write IEEE-695 debugging information.
-   Copyright (C) 1996, 1998, 1999 Free Software Foundation, Inc.
+   Copyright 1996, 1998, 2000, 2001 Free Software Foundation, Inc.
    Written by Ian Lance Taylor <ian@cygnus.com>.
 
    This file is part of GNU Binutils.
@@ -30,6 +30,7 @@
 #include "libiberty.h"
 #include "debug.h"
 #include "budbg.h"
+#include "filenames.h"
 
 /* This structure holds an entry on the block stack.  */
 
@@ -409,7 +410,7 @@ ieee_read_optional_number (info, pp, pv, ppresent)
     }
 
   ieee_error (info, *pp - 1, _("invalid number"));
-  return false;  
+  return false;
 }
 
 /* Read a required string from an IEEE file.  */
@@ -562,7 +563,7 @@ ieee_read_expression (info, pp, pv)
                ieee_error (info, start, _("unknown section"));
                return false;
              }
-           
+
            if (esp - expr_stack >= EXPR_STACK_SIZE)
              {
                ieee_error (info, start, _("expression stack overflow"));
@@ -779,7 +780,7 @@ ieee_builtin_type (info, p, indx)
 
     case builtin_bcd_float:
       ieee_error (info, p, _("BCD float type not supported"));
-      return false;
+      return DEBUG_TYPE_NULL;
     }
 
   if (name != NULL)
@@ -4493,7 +4494,7 @@ ieee_start_range (info, low)
   r->next = info->pending_ranges;
   info->pending_ranges = r;
   return true;
-}  
+}
 
 /* Finish a range started by ieee_start_range.  */
 
@@ -4926,6 +4927,9 @@ ieee_start_compilation_unit (p, filename)
 {
   struct ieee_handle *info = (struct ieee_handle *) p;
   const char *modname;
+#ifdef HAVE_DOS_BASED_FILE_SYSTEM
+  const char *backslash;
+#endif
   char *c, *s;
   unsigned int nindx;
 
@@ -4937,16 +4941,22 @@ ieee_start_compilation_unit (p, filename)
 
   info->filename = filename;
   modname = strrchr (filename, '/');
+#ifdef HAVE_DOS_BASED_FILE_SYSTEM
+  /* We could have a mixed forward/back slash case.  */
+  backslash = strrchr (filename, '\\');
+  if (modname == NULL || (backslash != NULL && backslash > modname))
+    modname = backslash;
+#endif
+
   if (modname != NULL)
     ++modname;
+#ifdef HAVE_DOS_BASED_FILE_SYSTEM
+  else if (filename[0] && filename[1] == ':')
+    modname = filename + 2;
+#endif
   else
-    {
-      modname = strrchr (filename, '\\');
-      if (modname != NULL)
-       ++modname;
-      else
-       modname = filename;
-    }
+    modname = filename;
+
   c = xstrdup (modname);
   s = strrchr (c, '.');
   if (s != NULL)
@@ -5195,21 +5205,29 @@ ieee_add_bb11 (info, sec, low, high)
   else
     {
       const char *filename, *modname;
+#ifdef HAVE_DOS_BASED_FILE_SYSTEM
+      const char *backslash;
+#endif
       char *c, *s;
 
       /* Start the enclosing BB10 block.  */
       filename = bfd_get_filename (info->abfd);
       modname = strrchr (filename, '/');
+#ifdef HAVE_DOS_BASED_FILE_SYSTEM
+      backslash = strrchr (filename, '\\');
+      if (modname == NULL || (backslash != NULL && backslash > modname))
+       modname = backslash;
+#endif
+
       if (modname != NULL)
        ++modname;
+#ifdef HAVE_DOS_BASED_FILE_SYSTEM
+      else if (filename[0] && filename[1] == ':')
+       modname = filename + 2;
+#endif
       else
-       {
-         modname = strrchr (filename, '\\');
-         if (modname != NULL)
-           ++modname;
-         else
-           modname = filename;
-       }
+       modname = filename;
+
       c = xstrdup (modname);
       s = strrchr (c, '.');
       if (s != NULL)
@@ -5829,7 +5847,7 @@ ieee_offset_type (p)
      which seems pretty important.  I'm going to punt this for now.  */
 
   return ieee_int_type (p, 4, true);
-}  
+}
 
 /* Make a method type.  */
 
@@ -7303,7 +7321,7 @@ ieee_function_parameter (p, name, kind, val)
     return false;
   ++info->fnargcount;
 
-  return true;  
+  return true;
 }
 
 /* Output pending function parameters.  */
This page took 0.024699 seconds and 4 git commands to generate.