2000-03-30 Michael Snyder <msnyder@cleaver.cygnus.com>
[deliverable/binutils-gdb.git] / binutils / ieee.c
index f1276b3abfa5cc8890c7a76eea39d6feca2355ea..a3bb93b8d7f49ba1f549e56604e6ee043390cb46 100644 (file)
@@ -1,5 +1,5 @@
 /* ieee.c -- Read and write IEEE-695 debugging information.
-   Copyright (C) 1996 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1998, 1999 Free Software Foundation, Inc.
    Written by Ian Lance Taylor <ian@cygnus.com>.
 
    This file is part of GNU Binutils.
@@ -313,7 +313,7 @@ ieee_eof (info)
      struct ieee_info *info;
 {
   ieee_error (info, (const bfd_byte *) NULL,
-             "unexpected end of debugging information");
+             _("unexpected end of debugging information"));
 }
 
 /* Save a string in memory.  */
@@ -408,7 +408,7 @@ ieee_read_optional_number (info, pp, pv, ppresent)
       return true;
     }
 
-  ieee_error (info, *pp - 1, "invalid number");
+  ieee_error (info, *pp - 1, _("invalid number"));
   return false;  
 }
 
@@ -467,7 +467,7 @@ ieee_read_optional_id (info, pp, pname, pnamlen, ppresent)
          *ppresent = false;
          return true;
        }
-      ieee_error (info, *pp - 1, "invalid string length");
+      ieee_error (info, *pp - 1, _("invalid string length"));
       return false;
     }
 
@@ -524,7 +524,7 @@ ieee_read_expression (info, pp, pv)
        {
          if (esp - expr_stack >= EXPR_STACK_SIZE)
            {
-             ieee_error (info, start, "expression stack overflow");
+             ieee_error (info, start, _("expression stack overflow"));
              return false;
            }
          *esp++ = val;
@@ -544,7 +544,7 @@ ieee_read_expression (info, pp, pv)
       switch (c)
        {
        default:
-         ieee_error (info, start, "unsupported IEEE expression operator");
+         ieee_error (info, start, _("unsupported IEEE expression operator"));
          break;
 
        case ieee_variable_R_enum:
@@ -559,13 +559,13 @@ ieee_read_expression (info, pp, pv)
                break;
            if (s == NULL)
              {
-               ieee_error (info, start, "unknown section");
+               ieee_error (info, start, _("unknown section"));
                return false;
              }
            
            if (esp - expr_stack >= EXPR_STACK_SIZE)
              {
-               ieee_error (info, start, "expression stack overflow");
+               ieee_error (info, start, _("expression stack overflow"));
                return false;
              }
 
@@ -580,7 +580,7 @@ ieee_read_expression (info, pp, pv)
 
            if (esp - expr_stack < 2)
              {
-               ieee_error (info, start, "expression stack underflow");
+               ieee_error (info, start, _("expression stack underflow"));
                return false;
              }
 
@@ -594,7 +594,7 @@ ieee_read_expression (info, pp, pv)
 
   if (esp - 1 != expr_stack)
     {
-      ieee_error (info, expr_start, "expression stack mismatch");
+      ieee_error (info, expr_start, _("expression stack mismatch"));
       return false;
     }
 
@@ -633,7 +633,7 @@ ieee_builtin_type (info, p, indx)
   switch ((enum builtin_types) indx)
     {
     default:
-      ieee_error (info, p, "unknown builtin type");
+      ieee_error (info, p, _("unknown builtin type"));
       return NULL;
 
     case builtin_unknown:
@@ -778,8 +778,8 @@ ieee_builtin_type (info, p, indx)
       break;
 
     case builtin_bcd_float:
-      ieee_error (info, p, "BCD float type not supported");
-      return false;
+      ieee_error (info, p, _("BCD float type not supported"));
+      return DEBUG_TYPE_NULL;
     }
 
   if (name != NULL)
@@ -900,8 +900,10 @@ parse_ieee (dhandle, abfd, bytes, len)
   info.saw_filename = false;
   info.vars.alloc = 0;
   info.vars.vars = NULL;
+  info.global_vars = NULL;
   info.types.alloc = 0;
   info.types.types = NULL;
+  info.global_types = NULL;
   info.tags = NULL;
   for (i = 0; i < BUILTIN_TYPE_COUNT; i++)
     info.types.builtins[i] = DEBUG_TYPE_NULL;
@@ -922,14 +924,14 @@ parse_ieee (dhandle, abfd, bytes, len)
 
       if (c <= ieee_number_repeat_end_enum)
        {
-         ieee_error (&info, record_start, "unexpected number");
+         ieee_error (&info, record_start, _("unexpected number"));
          return false;
        }
 
       switch (c)
        {
        default:
-         ieee_error (&info, record_start, "unexpected record type");
+         ieee_error (&info, record_start, _("unexpected record type"));
          return false;
 
        case ieee_bb_record_enum:
@@ -962,7 +964,7 @@ parse_ieee (dhandle, abfd, bytes, len)
   if (info.blockstack.bsp != info.blockstack.stack)
     {
       ieee_error (&info, (const bfd_byte *) NULL,
-                 "blocks left on stack at end");
+                 _("blocks left on stack at end"));
       return false;
     }
 
@@ -981,7 +983,7 @@ parse_ieee_bb (info, pp)
   bfd_vma size;
   const char *name;
   unsigned long namlen;
-  char *namcopy;
+  char *namcopy = NULL;
   unsigned int fnindx;
   boolean skip;
 
@@ -1227,7 +1229,7 @@ parse_ieee_bb (info, pp)
       break;
 
     default:
-      ieee_error (info, block_start, "unknown BB type");
+      ieee_error (info, block_start, _("unknown BB type"));
       return false;
     }
 
@@ -1236,7 +1238,7 @@ parse_ieee_bb (info, pp)
 
   if (info->blockstack.bsp >= info->blockstack.stack + BLOCKSTACK_SIZE)
     {
-      ieee_error (info, (const bfd_byte *) NULL, "stack overflow");
+      ieee_error (info, (const bfd_byte *) NULL, _("stack overflow"));
       return false;
     }
 
@@ -1261,7 +1263,7 @@ parse_ieee_be (info, pp)
 
   if (info->blockstack.bsp <= info->blockstack.stack)
     {
-      ieee_error (info, *pp, "stack underflow");
+      ieee_error (info, *pp, _("stack underflow"));
       return false;
     }
   --info->blockstack.bsp;
@@ -1375,7 +1377,7 @@ parse_ieee_nn (info, pp)
 
   if (varindx < 32)
     {
-      ieee_error (info, nn_start, "illegal variable index");
+      ieee_error (info, nn_start, _("illegal variable index"));
       return false;
     }
   varindx -= 32;
@@ -1425,7 +1427,7 @@ parse_ieee_ty (info, pp)
 
   if (typeindx < 256)
     {
-      ieee_error (info, ty_start, "illegal type index");
+      ieee_error (info, ty_start, _("illegal type index"));
       return false;
     }
 
@@ -1435,7 +1437,7 @@ parse_ieee_ty (info, pp)
 
   if (**pp != 0xce)
     {
-      ieee_error (info, *pp, "unknown TY code");
+      ieee_error (info, *pp, _("unknown TY code"));
       return false;
     }
   ++*pp;
@@ -1447,14 +1449,14 @@ parse_ieee_ty (info, pp)
 
   if (varindx < 32)
     {
-      ieee_error (info, ty_var_start, "illegal variable index");
+      ieee_error (info, ty_var_start, _("illegal variable index"));
       return false;
     }
   varindx -= 32;
 
   if (varindx >= info->vars.alloc || info->vars.vars[varindx].name == NULL)
     {
-      ieee_error (info, ty_var_start, "undefined variable in TY");
+      ieee_error (info, ty_var_start, _("undefined variable in TY"));
       return false;
     }
 
@@ -1472,7 +1474,7 @@ parse_ieee_ty (info, pp)
   switch (tc)
     {
     default:
-      ieee_error (info, ty_code_start, "unknown TY code");
+      ieee_error (info, ty_code_start, _("unknown TY code"));
       return false;
 
     case '!':
@@ -1865,7 +1867,7 @@ parse_ieee_ty (info, pp)
 
     case 'f':
       /* Pascal file name.  FIXME.  */
-      ieee_error (info, ty_code_start, "Pascal file name not supported");
+      ieee_error (info, ty_code_start, _("Pascal file name not supported"));
       return false;
 
     case 'g':
@@ -1913,7 +1915,7 @@ parse_ieee_ty (info, pp)
        switch (kind)
          {
          default:
-           ieee_error (info, ty_start, "unsupported qualifer");
+           ieee_error (info, ty_start, _("unsupported qualifer"));
            return false;
 
          case 1:
@@ -2141,7 +2143,12 @@ parse_ieee_atn (info, pp)
     }
   else if (varindx < 32)
     {
-      ieee_error (info, atn_start, "illegal variable index");
+      /* The MRI compiler reportedly sometimes emits variable lifetime
+         information for a register.  We just ignore it.  */
+      if (atn_code == 9)
+       return ieee_read_number (info, pp, &v);
+
+      ieee_error (info, atn_start, _("illegal variable index"));
       return false;
     }
   else
@@ -2179,7 +2186,7 @@ parse_ieee_atn (info, pp)
            }
          else
            {
-             ieee_error (info, atn_start, "undefined variable in ATN");
+             ieee_error (info, atn_start, _("undefined variable in ATN"));
              return false;
            }
        }
@@ -2222,7 +2229,7 @@ parse_ieee_atn (info, pp)
   switch (atn_code)
     {
     default:
-      ieee_error (info, atn_code_start, "unknown ATN type");
+      ieee_error (info, atn_code_start, _("unknown ATN type"));
       return false;
 
     case 1:
@@ -2344,7 +2351,7 @@ parse_ieee_atn (info, pp)
 
     case 11:
       /* Reserved for FORTRAN common.  */
-      ieee_error (info, atn_code_start, "unsupported ATN11");
+      ieee_error (info, atn_code_start, _("unsupported ATN11"));
 
       /* Return true to keep going.  */
       return true;
@@ -2371,7 +2378,7 @@ parse_ieee_atn (info, pp)
 
       /* We have no way to record this information.  FIXME.  */
 
-      ieee_error (info, atn_code_start, "unsupported ATN12");
+      ieee_error (info, atn_code_start, _("unsupported ATN12"));
 
       /* Return true to keep going.  */
       return true;
@@ -2431,7 +2438,7 @@ parse_ieee_atn (info, pp)
          if (present)
            {
              ieee_error (info, atn_code_start,
-                         "unexpected string in C++ misc");
+                         _("unexpected string in C++ misc"));
              return false;
            }
          return ieee_read_cxx_misc (info, pp, v2);
@@ -2444,7 +2451,7 @@ parse_ieee_atn (info, pp)
          switch ((ieee_record_enum_type) **pp)
            {
            default:
-             ieee_error (info, *pp, "bad misc record");
+             ieee_error (info, *pp, _("bad misc record"));
              return false;
 
            case ieee_at_record_enum:
@@ -2487,7 +2494,7 @@ ieee_read_cxx_misc (info, pp, count)
   switch (category)
     {
     default:
-      ieee_error (info, start, "unrecognized C++ misc record");
+      ieee_error (info, start, _("unrecognized C++ misc record"));
       return false;
 
     case 'T':
@@ -2604,7 +2611,7 @@ ieee_read_cxx_class (info, pp, count)
       break;
   if (it == NULL)
     {
-      ieee_error (info, start, "undefined C++ object");
+      ieee_error (info, start, _("undefined C++ object"));
       return false;
     }
 
@@ -2638,7 +2645,7 @@ ieee_read_cxx_class (info, pp, count)
       switch (id)
        {
        default:
-         ieee_error (info, spec_start, "unrecognized C++ object spec");
+         ieee_error (info, spec_start, _("unrecognized C++ object spec"));
          return false;
 
        case 'b':
@@ -2674,7 +2681,7 @@ ieee_read_cxx_class (info, pp, count)
 
            if ((fieldlen == 0) == (cinline == 0))
              {
-               ieee_error (info, start, "unsupported C++ object type");
+               ieee_error (info, start, _("unsupported C++ object type"));
                return false;
              }
 
@@ -2684,7 +2691,7 @@ ieee_read_cxx_class (info, pp, count)
            free (basecopy);
            if (basetype == DEBUG_TYPE_NULL)
              {
-               ieee_error (info, start, "C++ base class not defined");
+               ieee_error (info, start, _("C++ base class not defined"));
                return false;
              }
 
@@ -2696,7 +2703,7 @@ ieee_read_cxx_class (info, pp, count)
 
                if (structfields == NULL)
                  {
-                   ieee_error (info, start, "C++ object has no fields");
+                   ieee_error (info, start, _("C++ object has no fields"));
                    return false;
                  }
 
@@ -2715,7 +2722,7 @@ ieee_read_cxx_class (info, pp, count)
                if (*pf == DEBUG_FIELD_NULL)
                  {
                    ieee_error (info, start,
-                               "C++ base class not found in container");
+                               _("C++ base class not found in container"));
                    return false;
                  }
 
@@ -2759,7 +2766,7 @@ ieee_read_cxx_class (info, pp, count)
            char *fieldcopy;
            boolean staticp;
            debug_type ftype;
-           const debug_field *pf;
+           const debug_field *pf = NULL;
            enum debug_visibility visibility;
            debug_field field;
 
@@ -2801,7 +2808,7 @@ ieee_read_cxx_class (info, pp, count)
 
                if (structfields == NULL)
                  {
-                   ieee_error (info, start, "C++ object has no fields");
+                   ieee_error (info, start, _("C++ object has no fields"));
                    return false;
                  }
 
@@ -2822,7 +2829,7 @@ ieee_read_cxx_class (info, pp, count)
                if (*pf == DEBUG_FIELD_NULL)
                  {
                    ieee_error (info, start,
-                               "C++ data member not found in container");
+                               _("C++ data member not found in container"));
                    return false;
                  }
 
@@ -2863,7 +2870,7 @@ ieee_read_cxx_class (info, pp, count)
            switch (flags & CXXFLAGS_VISIBILITY)
              {
              default:
-               ieee_error (info, start, "unknown C++ visibility");
+               ieee_error (info, start, _("unknown C++ visibility"));
                return false;
 
              case CXXFLAGS_VISIBILITY_PUBLIC:
@@ -2897,7 +2904,7 @@ ieee_read_cxx_class (info, pp, count)
                bitsize = debug_get_field_bitsize (dhandle, *pf);
                if (bitpos == (bfd_vma) -1 || bitsize == (bfd_vma) -1)
                  {
-                   ieee_error (info, start, "bad C++ field bit pos or size");
+                   ieee_error (info, start, _("bad C++ field bit pos or size"));
                    return false;
                  }
                field = debug_make_field (dhandle, fieldcopy, ftype, bitpos,
@@ -2989,7 +2996,7 @@ ieee_read_cxx_class (info, pp, count)
                    != DEBUG_KIND_FUNCTION)
                  {
                    ieee_error (info, start,
-                               "bad type for C++ method function");
+                               _("bad type for C++ method function"));
                    return false;
                  }
 
@@ -2999,7 +3006,7 @@ ieee_read_cxx_class (info, pp, count)
                if (return_type == DEBUG_TYPE_NULL || arg_types == NULL)
                  {
                    ieee_error (info, start,
-                               "no type information for C++ method function");
+                               _("no type information for C++ method function"));
                    return false;
                  }
 
@@ -3013,7 +3020,7 @@ ieee_read_cxx_class (info, pp, count)
            switch (flags & CXXFLAGS_VISIBILITY)
              {
              default:
-               ieee_error (info, start, "unknown C++ visibility");
+               ieee_error (info, start, _("unknown C++ visibility"));
                return false;
 
              case CXXFLAGS_VISIBILITY_PUBLIC:
@@ -3038,7 +3045,7 @@ ieee_read_cxx_class (info, pp, count)
              {
                if (id == 'v')
                  {
-                   ieee_error (info, start, "C++ static virtual method");
+                   ieee_error (info, start, _("C++ static virtual method"));
                    return false;
                  }
                mv = debug_make_static_method_variant (dhandle, mangledcopy,
@@ -3133,7 +3140,7 @@ ieee_read_cxx_class (info, pp, count)
            else
              {
                ieee_error (info, start,
-                           "unrecognized C++ object overhead spec");
+                           _("unrecognized C++ object overhead spec"));
                return false;
              }
          }
@@ -3172,7 +3179,7 @@ ieee_read_cxx_class (info, pp, count)
                free (basecopy);
                if (vptrbase == DEBUG_TYPE_NULL)
                  {
-                   ieee_error (info, start, "undefined C++ vtable");
+                   ieee_error (info, start, _("undefined C++ vtable"));
                    return false;
                  }
              }
@@ -3243,7 +3250,7 @@ ieee_read_cxx_defaults (info, pp, count)
   if (info->blockstack.bsp <= info->blockstack.stack
       || info->blockstack.bsp[-1].fnindx == (unsigned int) -1)
     {
-      ieee_error (info, start, "C++ default values not in a function");
+      ieee_error (info, start, _("C++ default values not in a function"));
       return false;
     }
 
@@ -3283,7 +3290,7 @@ ieee_read_cxx_defaults (info, pp, count)
          break;
 
        default:
-         ieee_error (info, start, "unrecognized C++ default type");
+         ieee_error (info, start, _("unrecognized C++ default type"));
          return false;
        }
 
@@ -3314,7 +3321,7 @@ ieee_read_cxx_defaults (info, pp, count)
              || (debug_get_type_kind (dhandle, arg_slots[indx])
                  != DEBUG_KIND_POINTER))
            {
-             ieee_error (info, start, "reference parameter is not a pointer");
+             ieee_error (info, start, _("reference parameter is not a pointer"));
              return false;
            }
 
@@ -3399,7 +3406,7 @@ ieee_read_reference (info, pp)
                {
                default:
                  ieee_error (info, start,
-                             "unrecognized C++ reference type");
+                             _("unrecognized C++ reference type"));
                  return false;
 
                case 0:
@@ -3481,7 +3488,7 @@ ieee_read_reference (info, pp)
 
   if (pslot == NULL)
     {
-      ieee_error (info, start, "C++ reference not found");
+      ieee_error (info, start, _("C++ reference not found"));
       return false;
     }
 
@@ -3489,7 +3496,7 @@ ieee_read_reference (info, pp)
      to *pslot, which we can now update to be a reference type.  */
   if (debug_get_type_kind (info->dhandle, *pslot) != DEBUG_KIND_POINTER)
     {
-      ieee_error (info, start, "C++ reference is not pointer");
+      ieee_error (info, start, _("C++ reference is not pointer"));
       return false;
     }
 
@@ -3518,7 +3525,7 @@ ieee_require_asn (info, pp, pv)
   c = (ieee_record_enum_type) **pp;
   if (c != ieee_e2_first_byte_enum)
     {
-      ieee_error (info, start, "missing required ASN");
+      ieee_error (info, start, _("missing required ASN"));
       return false;
     }
   ++*pp;
@@ -3526,7 +3533,7 @@ ieee_require_asn (info, pp, pv)
   c = (ieee_record_enum_type) (((unsigned int) c << 8) | **pp);
   if (c != ieee_asn_record_enum)
     {
-      ieee_error (info, start, "missing required ASN");
+      ieee_error (info, start, _("missing required ASN"));
       return false;
     }
   ++*pp;
@@ -3556,7 +3563,7 @@ ieee_require_atn65 (info, pp, pname, pnamlen)
   c = (ieee_record_enum_type) **pp;
   if (c != ieee_at_record_enum)
     {
-      ieee_error (info, start, "missing required ATN65");
+      ieee_error (info, start, _("missing required ATN65"));
       return false;
     }
   ++*pp;
@@ -3564,7 +3571,7 @@ ieee_require_atn65 (info, pp, pname, pnamlen)
   c = (ieee_record_enum_type) (((unsigned int) c << 8) | **pp);
   if (c != ieee_atn_record_enum)
     {
-      ieee_error (info, start, "missing required ATN65");
+      ieee_error (info, start, _("missing required ATN65"));
       return false;
     }
   ++*pp;
@@ -3578,7 +3585,7 @@ ieee_require_atn65 (info, pp, pname, pnamlen)
 
   if (type_indx != 0 || atn_code != 65)
     {
-      ieee_error (info, start, "bad ATN65 record");
+      ieee_error (info, start, _("bad ATN65 record"));
       return false;
     }
 
@@ -4097,7 +4104,7 @@ static const struct debug_write_fns ieee_fns =
 /*ARGSUSED*/
 static boolean
 ieee_init_buffer (info, buflist)
-     struct ieee_handle *info;
+     struct ieee_handle *info ATTRIBUTE_UNUSED;
      struct ieee_buflist *buflist;
 {
   buflist->head = NULL;
@@ -4138,7 +4145,7 @@ ieee_change_buffer (info, buflist)
 /*ARGSUSED*/
 static boolean
 ieee_append_buffer (info, mainbuf, newbuf)
-     struct ieee_handle *info;
+     struct ieee_handle *info ATTRIBUTE_UNUSED;
      struct ieee_buflist *mainbuf;
      struct ieee_buflist *newbuf;
 {
@@ -4225,7 +4232,7 @@ ieee_write_number (info, v)
   if (c > (unsigned int) (ieee_number_repeat_end_enum
                          - ieee_number_repeat_start_enum))
     {
-      fprintf (stderr, "IEEE numeric overflow: 0x");
+      fprintf (stderr, _("IEEE numeric overflow: 0x"));
       fprintf_vma (stderr, v);
       fprintf (stderr, "\n");
       return false;
@@ -4271,7 +4278,7 @@ ieee_write_id (info, s)
     }
   else
     {
-      fprintf (stderr, "IEEE string length overflow: %u\n", len);
+      fprintf (stderr, _("IEEE string length overflow: %u\n"), len);
       return false;
     }
 
@@ -5128,7 +5135,7 @@ ieee_finish_compilation_unit (info)
 
 static void
 ieee_add_bb11_blocks (abfd, sec, data)
-     bfd *abfd;
+     bfd *abfd ATTRIBUTE_UNUSED;
      asection *sec;
      PTR data;
 {
@@ -5251,8 +5258,8 @@ ieee_add_bb11 (info, sec, low, high)
 /*ARGSUSED*/
 static boolean
 ieee_start_source (p, filename)
-     PTR p;
-     const char *filename;
+     PTR p ATTRIBUTE_UNUSED;
+     const char *filename ATTRIBUTE_UNUSED;
 {
   return true;
 }
@@ -5305,7 +5312,7 @@ ieee_int_type (p, size, unsignedp)
       indx = (int) builtin_signed_long_long;
       break;
     default:
-      fprintf (stderr, "IEEE unsupported integer type size %u\n", size);
+      fprintf (stderr, _("IEEE unsupported integer type size %u\n"), size);
       return false;
     }
 
@@ -5341,7 +5348,7 @@ ieee_float_type (p, size)
       indx = (int) builtin_long_long_double;
       break;
     default:
-      fprintf (stderr, "IEEE unsupported float type size %u\n", size);
+      fprintf (stderr, _("IEEE unsupported float type size %u\n"), size);
       return false;
     }
 
@@ -5377,7 +5384,7 @@ ieee_complex_type (p, size)
       code = 'd';
       break;
     default:
-      fprintf (stderr, "IEEE unsupported complex type size %u\n", size);
+      fprintf (stderr, _("IEEE unsupported complex type size %u\n"), size);
       return false;
     }
 
@@ -5419,7 +5426,7 @@ ieee_enum_type (p, tag, names, vals)
   struct ieee_defined_enum *e;
   boolean localp, simple;
   unsigned int indx;
-  int i;
+  int i = 0;
 
   localp = false;
   indx = (unsigned int) -1;
@@ -5718,19 +5725,26 @@ ieee_array_type (p, low, high, stringp)
      PTR p;
      bfd_signed_vma low;
      bfd_signed_vma high;
-     boolean stringp;
+     boolean stringp ATTRIBUTE_UNUSED;
 {
   struct ieee_handle *info = (struct ieee_handle *) p;
   unsigned int eleindx;
   boolean localp;
+  unsigned int size;
   struct ieee_modified_type *m = NULL;
   struct ieee_modified_array_type *a;
 
   /* IEEE does not store the range, so we just ignore it.  */
   ieee_pop_unused_type (info);
   localp = info->type_stack->type.localp;
+  size = info->type_stack->type.size;
   eleindx = ieee_pop_type (info);
 
+  /* If we don't know the range, treat the size as exactly one
+     element.  */
+  if (low < high)
+    size *= (high - low) + 1;
+
   if (! localp)
     {
       m = ieee_get_modified_info (info, eleindx);
@@ -5740,11 +5754,11 @@ ieee_array_type (p, low, high, stringp)
       for (a = m->arrays; a != NULL; a = a->next)
        {
          if (a->low == low && a->high == high)
-           return ieee_push_type (info, a->indx, 0, false, false);
+           return ieee_push_type (info, a->indx, size, false, false);
        }
     }
 
-  if (! ieee_define_type (info, 0, false, localp)
+  if (! ieee_define_type (info, size, false, localp)
       || ! ieee_write_number (info, low == 0 ? 'Z' : 'C')
       || ! ieee_write_number (info, eleindx))
     return false;
@@ -5778,7 +5792,7 @@ ieee_array_type (p, low, high, stringp)
 static boolean
 ieee_set_type (p, bitstringp)
      PTR p;
-     boolean bitstringp;
+     boolean bitstringp ATTRIBUTE_UNUSED;
 {
   struct ieee_handle *info = (struct ieee_handle *) p;
   boolean localp;
@@ -6998,7 +7012,7 @@ ieee_typdef (p, name)
 static boolean
 ieee_tag (p, name)
      PTR p;
-     const char *name;
+     const char *name ATTRIBUTE_UNUSED;
 {
   struct ieee_handle *info = (struct ieee_handle *) p;
 
@@ -7012,9 +7026,9 @@ ieee_tag (p, name)
 
 static boolean
 ieee_int_constant (p, name, val)
-     PTR p;
-     const char *name;
-     bfd_vma val;
+     PTR p ATTRIBUTE_UNUSED;
+     const char *name ATTRIBUTE_UNUSED;
+     bfd_vma val ATTRIBUTE_UNUSED;
 {
   /* FIXME.  */
   return true;
@@ -7024,9 +7038,9 @@ ieee_int_constant (p, name, val)
 
 static boolean
 ieee_float_constant (p, name, val)
-     PTR p;
-     const char *name;
-     double val;
+     PTR p ATTRIBUTE_UNUSED;
+     const char *name ATTRIBUTE_UNUSED;
+     double val ATTRIBUTE_UNUSED;
 {
   /* FIXME.  */
   return true;
@@ -7037,8 +7051,8 @@ ieee_float_constant (p, name, val)
 static boolean
 ieee_typed_constant (p, name, val)
      PTR p;
-     const char *name;
-     bfd_vma val;
+     const char *name ATTRIBUTE_UNUSED;
+     bfd_vma val ATTRIBUTE_UNUSED;
 {
   struct ieee_handle *info = (struct ieee_handle *) p;
 
@@ -7587,12 +7601,9 @@ ieee_lineno (p, filename, lineno, addr)
        return false;
     }
 
-  if (addr < info->highaddr)
-    {
-      info->pending_lineno_filename = filename;
-      info->pending_lineno = lineno;
-      info->pending_lineno_addr = addr;
-    }
+  info->pending_lineno_filename = filename;
+  info->pending_lineno = lineno;
+  info->pending_lineno_addr = addr;
 
   return true;
 }
This page took 0.059581 seconds and 4 git commands to generate.