boolean stringp;
boolean stringp ATTRIBUTE_UNUSED;
ieee_array_type (p, low, high, stringp)     PTR p;     bfd_signed_vma low;     bfd_signed_vma high;     boolean stringp;{  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);      if (m == NULL)	return false;      for (a = m->arrays; a != NULL; a = a->next)	{	  if (a->low == low && a->high == high)	    return ieee_push_type (info, a->indx, size, false, false);	}    }  if (! ieee_define_type (info, size, false, localp)      || ! ieee_write_number (info, low == 0 ? 'Z' : 'C')      || ! ieee_write_number (info, eleindx))    return false;  if (low != 0)    {      if (! ieee_write_number (info, low))	return false;    }  if (! ieee_write_number (info, high + 1))    return false;  if (! localp)    {      a = (struct ieee_modified_array_type *) xmalloc (sizeof *a);      memset (a, 0, sizeof *a);      a->indx = info->type_stack->type.indx;      a->low = low;      a->high = high;      a->next = m->arrays;      m->arrays = a;    }  return true;}