Update PC when simulate break instruction.
[deliverable/binutils-gdb.git] / binutils / ieee.c
index 1ced603680d9611f94f272f46285dbe07eb9f2a9..4cf2b1d7121a3f47265157cfb14626d40bbbe97b 100644 (file)
@@ -1,12 +1,12 @@
 /* ieee.c -- Read and write IEEE-695 debugging information.
 /* ieee.c -- Read and write IEEE-695 debugging information.
-   Copyright 1996, 1998, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1996-2016 Free Software Foundation, Inc.
    Written by Ian Lance Taylor <ian@cygnus.com>.
 
    This file is part of GNU Binutils.
 
    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
    Written by Ian Lance Taylor <ian@cygnus.com>.
 
    This file is part of GNU Binutils.
 
    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
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
 
    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.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
 
 /* This file reads and writes IEEE-695 debugging information.  */
 
 
 /* This file reads and writes IEEE-695 debugging information.  */
 
-#include <stdio.h>
+#include "sysdep.h"
 #include <assert.h>
 #include <assert.h>
-
 #include "bfd.h"
 #include "ieee.h"
 #include "bfd.h"
 #include "ieee.h"
-#include "bucomm.h"
 #include "libiberty.h"
 #include "debug.h"
 #include "budbg.h"
 #include "libiberty.h"
 #include "debug.h"
 #include "budbg.h"
@@ -60,6 +58,16 @@ struct ieee_blockstack
 
 /* This structure holds information for a variable.  */
 
 
 /* This structure holds information for a variable.  */
 
+enum ieee_var_kind
+  {
+    IEEE_UNKNOWN,
+    IEEE_EXTERNAL,
+    IEEE_GLOBAL,
+    IEEE_STATIC,
+    IEEE_LOCAL,
+    IEEE_FUNCTION
+  };
+
 struct ieee_var
 {
   /* Start of name.  */
 struct ieee_var
 {
   /* Start of name.  */
@@ -71,15 +79,7 @@ struct ieee_var
   /* Slot if we make an indirect type.  */
   debug_type *pslot;
   /* Kind of variable or function.  */
   /* Slot if we make an indirect type.  */
   debug_type *pslot;
   /* Kind of variable or function.  */
-  enum
-    {
-      IEEE_UNKNOWN,
-      IEEE_EXTERNAL,
-      IEEE_GLOBAL,
-      IEEE_STATIC,
-      IEEE_LOCAL,
-      IEEE_FUNCTION
-    } kind;
+  enum ieee_var_kind kind;
 };
 
 /* This structure holds all the variables.  */
 };
 
 /* This structure holds all the variables.  */
@@ -1070,6 +1070,16 @@ parse_ieee_bb (struct ieee_info *info, const bfd_byte **pp)
              break;
          }
 
              break;
          }
 
+       if (! info->saw_filename)
+         {
+           namcopy = savestring (name, namlen);
+           if (namcopy == NULL)
+             return FALSE;
+           if (! debug_set_filename (info->dhandle, namcopy))
+             return FALSE;
+           info->saw_filename = TRUE;
+         }
+
        namcopy = savestring (name, namlen);
        if (namcopy == NULL)
          return FALSE;
        namcopy = savestring (name, namlen);
        if (namcopy == NULL)
          return FALSE;
@@ -1787,6 +1797,7 @@ parse_ieee_ty (struct ieee_info *info, const bfd_byte **pp)
       break;
 
     case 'V':
       break;
 
     case 'V':
+    case 'v':
       /* Void.  This is not documented, but the MRI compiler emits it.  */
       type = debug_make_void_type (dhandle);
       break;
       /* Void.  This is not documented, but the MRI compiler emits it.  */
       type = debug_make_void_type (dhandle);
       break;
@@ -2490,7 +2501,7 @@ ieee_read_cxx_misc (struct ieee_info *info, const bfd_byte **pp,
 
     case 'z':
       {
 
     case 'z':
       {
-       const char *name, *mangled, *class;
+       const char *name, *mangled, *cxx_class;
        unsigned long namlen, mangledlen, classlen;
        bfd_vma control;
 
        unsigned long namlen, mangledlen, classlen;
        bfd_vma control;
 
@@ -2498,7 +2509,7 @@ ieee_read_cxx_misc (struct ieee_info *info, const bfd_byte **pp,
 
        if (! ieee_require_atn65 (info, pp, &name, &namlen)
            || ! ieee_require_atn65 (info, pp, &mangled, &mangledlen)
 
        if (! ieee_require_atn65 (info, pp, &name, &namlen)
            || ! ieee_require_atn65 (info, pp, &mangled, &mangledlen)
-           || ! ieee_require_atn65 (info, pp, &class, &classlen)
+           || ! ieee_require_atn65 (info, pp, &cxx_class, &classlen)
            || ! ieee_require_asn (info, pp, &control))
          return FALSE;
 
            || ! ieee_require_asn (info, pp, &control))
          return FALSE;
 
@@ -2523,7 +2534,7 @@ ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp,
                     unsigned long count)
 {
   const bfd_byte *start;
                     unsigned long count)
 {
   const bfd_byte *start;
-  bfd_vma class;
+  bfd_vma cxx_class;
   const char *tag;
   unsigned long taglen;
   struct ieee_tag *it;
   const char *tag;
   unsigned long taglen;
   struct ieee_tag *it;
@@ -2548,7 +2559,7 @@ ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp,
 
   start = *pp;
 
 
   start = *pp;
 
-  if (! ieee_require_asn (info, pp, &class))
+  if (! ieee_require_asn (info, pp, &cxx_class))
     return FALSE;
   --count;
 
     return FALSE;
   --count;
 
@@ -2604,7 +2615,7 @@ ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp,
        case 'b':
          {
            bfd_vma flags, cinline;
        case 'b':
          {
            bfd_vma flags, cinline;
-           const char *basename, *fieldname;
+           const char *base, *fieldname;
            unsigned long baselen, fieldlen;
            char *basecopy;
            debug_type basetype;
            unsigned long baselen, fieldlen;
            char *basecopy;
            debug_type basetype;
@@ -2616,7 +2627,7 @@ ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp,
            /* This represents a base or friend class.  */
 
            if (! ieee_require_asn (info, pp, &flags)
            /* This represents a base or friend class.  */
 
            if (! ieee_require_asn (info, pp, &flags)
-               || ! ieee_require_atn65 (info, pp, &basename, &baselen)
+               || ! ieee_require_atn65 (info, pp, &base, &baselen)
                || ! ieee_require_asn (info, pp, &cinline)
                || ! ieee_require_atn65 (info, pp, &fieldname, &fieldlen))
              return FALSE;
                || ! ieee_require_asn (info, pp, &cinline)
                || ! ieee_require_atn65 (info, pp, &fieldname, &fieldlen))
              return FALSE;
@@ -2638,7 +2649,7 @@ ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp,
                return FALSE;
              }
 
                return FALSE;
              }
 
-           basecopy = savestring (basename, baselen);
+           basecopy = savestring (base, baselen);
            basetype = debug_find_tagged_type (dhandle, basecopy,
                                               DEBUG_KIND_ILLEGAL);
            free (basecopy);
            basetype = debug_find_tagged_type (dhandle, basecopy,
                                               DEBUG_KIND_ILLEGAL);
            free (basecopy);
@@ -2943,7 +2954,7 @@ ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp,
              {
                debug_type return_type;
                const debug_type *arg_types;
              {
                debug_type return_type;
                const debug_type *arg_types;
-               bfd_boolean varargs;
+               bfd_boolean varargs = FALSE;
 
                if (debug_get_type_kind (dhandle, pv->type)
                    != DEBUG_KIND_FUNCTION)
 
                if (debug_get_type_kind (dhandle, pv->type)
                    != DEBUG_KIND_FUNCTION)
@@ -3101,7 +3112,7 @@ ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp,
 
        case 'z':
          {
 
        case 'z':
          {
-           const char *vname, *basename;
+           const char *vname, *base;
            unsigned long vnamelen, baselen;
            bfd_vma vsize, control;
 
            unsigned long vnamelen, baselen;
            bfd_vma vsize, control;
 
@@ -3109,7 +3120,7 @@ ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp,
 
            if (! ieee_require_atn65 (info, pp, &vname, &vnamelen)
                || ! ieee_require_asn (info, pp, &vsize)
 
            if (! ieee_require_atn65 (info, pp, &vname, &vnamelen)
                || ! ieee_require_asn (info, pp, &vsize)
-               || ! ieee_require_atn65 (info, pp, &basename, &baselen)
+               || ! ieee_require_atn65 (info, pp, &base, &baselen)
                || ! ieee_require_asn (info, pp, &control))
              return FALSE;
            count -= 4;
                || ! ieee_require_asn (info, pp, &control))
              return FALSE;
            count -= 4;
@@ -3126,7 +3137,7 @@ ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp,
              {
                char *basecopy;
 
              {
                char *basecopy;
 
-               basecopy = savestring (basename, baselen);
+               basecopy = savestring (base, baselen);
                vptrbase = debug_find_tagged_type (dhandle, basecopy,
                                                   DEBUG_KIND_ILLEGAL);
                free (basecopy);
                vptrbase = debug_find_tagged_type (dhandle, basecopy,
                                                   DEBUG_KIND_ILLEGAL);
                free (basecopy);
@@ -3170,7 +3181,7 @@ ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp,
      it->slot.  We update it->slot to automatically update all
      references to this struct.  */
   it->slot = debug_make_object_type (dhandle,
      it->slot.  We update it->slot to automatically update all
      references to this struct.  */
   it->slot = debug_make_object_type (dhandle,
-                                    class != 'u',
+                                    cxx_class != 'u',
                                     debug_get_type_size (dhandle,
                                                          it->slot),
                                     fields, baseclasses, dmethods,
                                     debug_get_type_size (dhandle,
                                                          it->slot),
                                     fields, baseclasses, dmethods,
@@ -3293,7 +3304,7 @@ ieee_read_reference (struct ieee_info *info, const bfd_byte **pp)
 {
   const bfd_byte *start;
   bfd_vma flags;
 {
   const bfd_byte *start;
   bfd_vma flags;
-  const char *class, *name;
+  const char *cxx_class, *name;
   unsigned long classlen, namlen;
   debug_type *pslot;
   debug_type target;
   unsigned long classlen, namlen;
   debug_type *pslot;
   debug_type target;
@@ -3307,7 +3318,7 @@ ieee_read_reference (struct ieee_info *info, const bfd_byte **pp)
      the spec.  */
   if (flags == 3)
     {
      the spec.  */
   if (flags == 3)
     {
-      if (! ieee_require_atn65 (info, pp, &class, &classlen))
+      if (! ieee_require_atn65 (info, pp, &cxx_class, &classlen))
        return FALSE;
     }
 
        return FALSE;
     }
 
@@ -3397,8 +3408,8 @@ ieee_read_reference (struct ieee_info *info, const bfd_byte **pp)
 
       for (it = info->tags; it != NULL; it = it->next)
        {
 
       for (it = info->tags; it != NULL; it = it->next)
        {
-         if (it->name[0] == class[0]
-             && strncmp (it->name, class, classlen) == 0
+         if (it->name[0] == cxx_class[0]
+             && strncmp (it->name, cxx_class, classlen) == 0
              && strlen (it->name) == classlen)
            {
              if (it->fslots != NULL)
              && strlen (it->name) == classlen)
            {
              if (it->fslots != NULL)
@@ -4593,8 +4604,10 @@ write_ieee_debugging_info (bfd *abfd, void *dhandle)
   info.type_indx = 256;
   info.name_indx = 32;
 
   info.type_indx = 256;
   info.name_indx = 32;
 
-  if (! bfd_hash_table_init (&info.typedefs.root, ieee_name_type_newfunc)
-      || ! bfd_hash_table_init (&info.tags.root, ieee_name_type_newfunc))
+  if (!bfd_hash_table_init (&info.typedefs.root, ieee_name_type_newfunc,
+                           sizeof (struct ieee_name_type_hash_entry))
+      || !bfd_hash_table_init (&info.tags.root, ieee_name_type_newfunc,
+                              sizeof (struct ieee_name_type_hash_entry)))
     return FALSE;
 
   if (! ieee_init_buffer (&info, &info.global_types)
     return FALSE;
 
   if (! ieee_init_buffer (&info, &info.global_types)
@@ -4675,14 +4688,10 @@ write_ieee_debugging_info (bfd *abfd, void *dhandle)
       return TRUE;
     }
   err = NULL;
       return TRUE;
     }
   err = NULL;
-  s = bfd_make_section (abfd, ".debug");
+  s = bfd_make_section_with_flags (abfd, ".debug",
+                                  SEC_DEBUGGING | SEC_HAS_CONTENTS);
   if (s == NULL)
     err = "bfd_make_section";
   if (s == NULL)
     err = "bfd_make_section";
-  if (err == NULL)
-    {
-      if (! bfd_set_section_flags (abfd, s, SEC_DEBUGGING | SEC_HAS_CONTENTS))
-       err = "bfd_set_section_flags";
-    }
   if (err == NULL)
     {
       bfd_size_type size;
   if (err == NULL)
     {
       bfd_size_type size;
@@ -4814,7 +4823,6 @@ ieee_start_compilation_unit (void *p, const char *filename)
   const char *backslash;
 #endif
   char *c, *s;
   const char *backslash;
 #endif
   char *c, *s;
-  unsigned int nindx;
 
   if (info->filename != NULL)
     {
 
   if (info->filename != NULL)
     {
@@ -4862,7 +4870,6 @@ ieee_start_compilation_unit (void *p, const char *filename)
       || ! ieee_write_id (info, info->modname))
     return FALSE;
 
       || ! ieee_write_id (info, info->modname))
     return FALSE;
 
-  nindx = info->name_indx;
   ++info->name_indx;
   if (! ieee_change_buffer (info, &info->vars)
       || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
   ++info->name_indx;
   if (! ieee_change_buffer (info, &info->vars)
       || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
@@ -4930,7 +4937,7 @@ ieee_finish_compilation_unit (struct ieee_handle *info)
       if (! ieee_change_buffer (info, &info->linenos)
          || ! ieee_write_byte (info, (int) ieee_be_record_enum))
        return FALSE;
       if (! ieee_change_buffer (info, &info->linenos)
          || ! ieee_write_byte (info, (int) ieee_be_record_enum))
        return FALSE;
-      if (strcmp (info->filename, info->lineno_filename) != 0)
+      if (filename_cmp (info->filename, info->lineno_filename) != 0)
        {
          /* We were not in the main file.  We just closed the
              included line number block, and now we must close the
        {
          /* We were not in the main file.  We just closed the
              included line number block, and now we must close the
@@ -5117,7 +5124,10 @@ ieee_add_bb11 (struct ieee_handle *info, asection *sec, bfd_vma low,
          || ! ieee_write_id (info, "")
          || ! ieee_write_number (info, 0)
          || ! ieee_write_id (info, "GNU objcopy"))
          || ! ieee_write_id (info, "")
          || ! ieee_write_number (info, 0)
          || ! ieee_write_id (info, "GNU objcopy"))
-       return FALSE;
+       {
+         free (c);
+         return FALSE;
+       }
 
       free (c);
     }
 
       free (c);
     }
@@ -5443,7 +5453,7 @@ ieee_pointer_type (void *p)
 
   if (! localp)
     {
 
   if (! localp)
     {
-      m = ieee_get_modified_info (p, indx);
+      m = ieee_get_modified_info ((struct ieee_handle *) p, indx);
       if (m == NULL)
        return FALSE;
 
       if (m == NULL)
        return FALSE;
 
@@ -5501,7 +5511,7 @@ ieee_function_type (void *p, int argcount, bfd_boolean varargs)
   m = NULL;
   if (argcount < 0 && ! localp)
     {
   m = NULL;
   if (argcount < 0 && ! localp)
     {
-      m = ieee_get_modified_info (p, retindx);
+      m = ieee_get_modified_info ((struct ieee_handle *) p, retindx);
       if (m == NULL)
        return FALSE;
 
       if (m == NULL)
        return FALSE;
 
@@ -5521,7 +5531,10 @@ ieee_function_type (void *p, int argcount, bfd_boolean varargs)
       || ! ieee_write_number (info, 0)
       || ! ieee_write_number (info, retindx)
       || ! ieee_write_number (info, (bfd_vma) argcount + (varargs ? 1 : 0)))
       || ! ieee_write_number (info, 0)
       || ! ieee_write_number (info, retindx)
       || ! ieee_write_number (info, (bfd_vma) argcount + (varargs ? 1 : 0)))
-    return FALSE;
+    {
+      free (args);
+      return FALSE;
+    }
   if (argcount > 0)
     {
       for (i = 0; i < argcount; i++)
   if (argcount > 0)
     {
       for (i = 0; i < argcount; i++)
@@ -5678,12 +5691,6 @@ ieee_set_type (void *p, bfd_boolean bitstringp ATTRIBUTE_UNUSED)
 static bfd_boolean
 ieee_offset_type (void *p)
 {
 static bfd_boolean
 ieee_offset_type (void *p)
 {
-  struct ieee_handle *info = (struct ieee_handle *) p;
-  unsigned int targetindx, baseindx;
-
-  targetindx = ieee_pop_type (info);
-  baseindx = ieee_pop_type (info);
-
   /* FIXME: The MRI C++ compiler does not appear to generate any
      useful type information about an offset type.  It just records a
      pointer to member as an integer.  The MRI/HP IEEE spec does
   /* FIXME: The MRI C++ compiler does not appear to generate any
      useful type information about an offset type.  It just records a
      pointer to member as an integer.  The MRI/HP IEEE spec does
@@ -5970,8 +5977,6 @@ ieee_struct_field (void *p, const char *name, bfd_vma bitpos, bfd_vma bitsize,
 
       if (referencep)
        {
 
       if (referencep)
        {
-         unsigned int nindx;
-
          /* We need to output a record recording that this field is
              really of reference type.  We put this on the refs field
              of classdef, so that it can be appended to the C++
          /* We need to output a record recording that this field is
              really of reference type.  We put this on the refs field
              of classdef, so that it can be appended to the C++
@@ -6191,7 +6196,7 @@ ieee_class_static_member (void *p, const char *name, const char *physname,
 /* Add a base class to a class.  */
 
 static bfd_boolean
 /* Add a base class to a class.  */
 
 static bfd_boolean
-ieee_class_baseclass (void *p, bfd_vma bitpos, bfd_boolean virtual,
+ieee_class_baseclass (void *p, bfd_vma bitpos, bfd_boolean is_virtual,
                      enum debug_visibility visibility)
 {
   struct ieee_handle *info = (struct ieee_handle *) p;
                      enum debug_visibility visibility)
 {
   struct ieee_handle *info = (struct ieee_handle *) p;
@@ -6217,7 +6222,7 @@ ieee_class_baseclass (void *p, bfd_vma bitpos, bfd_boolean virtual,
      class.  The stabs debugging reader will create a field named
      _vb$CLASS for a virtual base class, so we just use that.  FIXME:
      we should not depend upon a detail of stabs debugging.  */
      class.  The stabs debugging reader will create a field named
      _vb$CLASS for a virtual base class, so we just use that.  FIXME:
      we should not depend upon a detail of stabs debugging.  */
-  if (virtual)
+  if (is_virtual)
     {
       fname = (char *) xmalloc (strlen (bname) + sizeof "_vb$");
       sprintf (fname, "_vb$%s", bname);
     {
       fname = (char *) xmalloc (strlen (bname) + sizeof "_vb$");
       sprintf (fname, "_vb$%s", bname);
@@ -6235,7 +6240,10 @@ ieee_class_baseclass (void *p, bfd_vma bitpos, bfd_boolean virtual,
          || ! ieee_write_id (info, fname)
          || ! ieee_write_number (info, bindx)
          || ! ieee_write_number (info, bitpos / 8))
          || ! ieee_write_id (info, fname)
          || ! ieee_write_number (info, bindx)
          || ! ieee_write_number (info, bitpos / 8))
-       return FALSE;
+       {
+         free (fname);
+         return FALSE;
+       }
       flags = 0;
     }
 
       flags = 0;
     }
 
@@ -6250,7 +6258,10 @@ ieee_class_baseclass (void *p, bfd_vma bitpos, bfd_boolean virtual,
       || ! ieee_write_atn65 (info, nindx, bname)
       || ! ieee_write_asn (info, nindx, 0)
       || ! ieee_write_atn65 (info, nindx, fname))
       || ! ieee_write_atn65 (info, nindx, bname)
       || ! ieee_write_asn (info, nindx, 0)
       || ! ieee_write_atn65 (info, nindx, fname))
-    return FALSE;
+    {
+      free (fname);
+      return FALSE;
+    }
   info->type_stack->type.classdef->pmisccount += 5;
 
   free (fname);
   info->type_stack->type.classdef->pmisccount += 5;
 
   free (fname);
@@ -6285,7 +6296,7 @@ ieee_class_method_var (struct ieee_handle *info, const char *physname,
 {
   unsigned int flags;
   unsigned int nindx;
 {
   unsigned int flags;
   unsigned int nindx;
-  bfd_boolean virtual;
+  bfd_boolean is_virtual;
 
   /* We don't need the type of the method.  An IEEE consumer which
      wants the type must track down the function by the physical name
 
   /* We don't need the type of the method.  An IEEE consumer which
      wants the type must track down the function by the physical name
@@ -6315,18 +6326,18 @@ ieee_class_method_var (struct ieee_handle *info, const char *physname,
 
   nindx = info->type_stack->type.classdef->indx;
 
 
   nindx = info->type_stack->type.classdef->indx;
 
-  virtual = context || voffset > 0;
+  is_virtual = context || voffset > 0;
 
   if (! ieee_change_buffer (info,
                            &info->type_stack->type.classdef->pmiscbuf)
 
   if (! ieee_change_buffer (info,
                            &info->type_stack->type.classdef->pmiscbuf)
-      || ! ieee_write_asn (info, nindx, virtual ? 'v' : 'm')
+      || ! ieee_write_asn (info, nindx, is_virtual ? 'v' : 'm')
       || ! ieee_write_asn (info, nindx, flags)
       || ! ieee_write_atn65 (info, nindx,
                             info->type_stack->type.classdef->method)
       || ! ieee_write_atn65 (info, nindx, physname))
     return FALSE;
 
       || ! ieee_write_asn (info, nindx, flags)
       || ! ieee_write_atn65 (info, nindx,
                             info->type_stack->type.classdef->method)
       || ! ieee_write_atn65 (info, nindx, physname))
     return FALSE;
 
-  if (virtual)
+  if (is_virtual)
     {
       if (voffset > info->type_stack->type.classdef->voffset)
        info->type_stack->type.classdef->voffset = voffset;
     {
       if (voffset > info->type_stack->type.classdef->voffset)
        info->type_stack->type.classdef->voffset = voffset;
@@ -7339,15 +7350,17 @@ ieee_lineno (void *p, const char *filename, unsigned long lineno, bfd_vma addr)
          info->lineno_filename = info->filename;
        }
 
          info->lineno_filename = info->filename;
        }
 
-      if (strcmp (info->pending_lineno_filename, info->lineno_filename) != 0)
+      if (filename_cmp (info->pending_lineno_filename,
+                       info->lineno_filename) != 0)
        {
        {
-         if (strcmp (info->filename, info->lineno_filename) != 0)
+         if (filename_cmp (info->filename, info->lineno_filename) != 0)
            {
              /* We were not in the main file.  Close the block for the
                 included file.  */
              if (! ieee_write_byte (info, (int) ieee_be_record_enum))
                return FALSE;
            {
              /* We were not in the main file.  Close the block for the
                 included file.  */
              if (! ieee_write_byte (info, (int) ieee_be_record_enum))
                return FALSE;
-             if (strcmp (info->filename, info->pending_lineno_filename) == 0)
+             if (filename_cmp (info->filename,
+                               info->pending_lineno_filename) == 0)
                {
                  /* We need a new NN record, and we aren't about to
                     output one.  */
                {
                  /* We need a new NN record, and we aren't about to
                     output one.  */
@@ -7359,7 +7372,8 @@ ieee_lineno (void *p, const char *filename, unsigned long lineno, bfd_vma addr)
                    return FALSE;
                }
            }
                    return FALSE;
                }
            }
-         if (strcmp (info->filename, info->pending_lineno_filename) != 0)
+         if (filename_cmp (info->filename,
+                           info->pending_lineno_filename) != 0)
            {
              /* We are not changing to the main file.  Open a block for
                 the new included file.  */
            {
              /* We are not changing to the main file.  Open a block for
                 the new included file.  */
This page took 0.05051 seconds and 4 git commands to generate.