case 63:
case ieee_attribute_record_enum: symbol_name_index = must_parse_int (&(ieee->h)); symbol_type_index = must_parse_int (&(ieee->h)); symbol_attribute_def = must_parse_int (&(ieee->h)); switch (symbol_attribute_def) { case 8: case 19: parse_int (&ieee->h, &value); break; default: (*_bfd_error_handler) ("%s: unimplemented ATI record  %u for symbol %u", bfd_get_filename (abfd), symbol_attribute_def, symbol_name_index); bfd_set_error (bfd_error_bad_value); return false; break; } break; case ieee_external_reference_info_record_enum:
ieee_slurp_external_symbols (abfd)     bfd *abfd;{  ieee_data_type *ieee = IEEE_DATA (abfd);  file_ptr offset = ieee->w.r.external_part;  ieee_symbol_type **prev_symbols_ptr = &ieee->external_symbols;  ieee_symbol_type **prev_reference_ptr = &ieee->external_reference;  ieee_symbol_type *symbol = (ieee_symbol_type *) NULL;  unsigned int symbol_count = 0;  boolean loop = true;  last_index = 0xffffff;  ieee->symbol_table_full = true;  ieee_seek (abfd, offset);  while (loop)    {      switch (this_byte (&(ieee->h)))	{	case ieee_nn_record:	  next_byte (&(ieee->h));	  symbol = get_symbol (abfd, ieee, symbol, &symbol_count,			       &prev_symbols_ptr,			       &ieee->external_symbol_max_index, 'D');	  if (symbol == NULL)	    return false;	  symbol->symbol.the_bfd = abfd;	  symbol->symbol.name = read_id (&(ieee->h));	  symbol->symbol.udata.p = (PTR) NULL;	  symbol->symbol.flags = BSF_NO_FLAGS;	  break;	case ieee_external_symbol_enum:	  next_byte (&(ieee->h));	  symbol = get_symbol (abfd, ieee, symbol, &symbol_count,			       &prev_symbols_ptr,			       &ieee->external_symbol_max_index, 'D');	  if (symbol == NULL)	    return false;	  BFD_ASSERT (symbol->index >= ieee->external_symbol_min_index);	  symbol->symbol.the_bfd = abfd;	  symbol->symbol.name = read_id (&(ieee->h));	  symbol->symbol.udata.p = (PTR) NULL;	  symbol->symbol.flags = BSF_NO_FLAGS;	  break;	case ieee_attribute_record_enum >> 8:	  {	    unsigned int symbol_name_index;	    unsigned int symbol_type_index;	    unsigned int symbol_attribute_def;	    bfd_vma value;	    next_byte (&(ieee->h));	/* Skip prefix */	    next_byte (&(ieee->h));	    symbol_name_index = must_parse_int (&(ieee->h));	    symbol_type_index = must_parse_int (&(ieee->h));	    symbol_attribute_def = must_parse_int (&(ieee->h));	    switch (symbol_attribute_def)	      {	      case 63:		/* Module misc; followed by two fields which describe the	       current module block. The first fired is the type id	       number, the second is the number of asn records	       associated with the directive */		parse_int (&(ieee->h), &value);		parse_int (&(ieee->h), &value);		break;	      default:		parse_int (&(ieee->h), &value);		break;	      }	  }	  break;	case ieee_value_record_enum >> 8:	  {	    unsigned int symbol_name_index;	    ieee_symbol_index_type symbol_ignore;	    boolean pcrel_ignore;	    unsigned int extra;	    next_byte (&(ieee->h));	    next_byte (&(ieee->h));	    symbol_name_index = must_parse_int (&(ieee->h));	    parse_expression (ieee,			      &symbol->symbol.value,			      &symbol_ignore,			      &pcrel_ignore,			      &extra,			      &symbol->symbol.section);	    symbol->symbol.flags = BSF_GLOBAL | BSF_EXPORT;	  }	  break;	case ieee_weak_external_reference_enum:	  {	    bfd_vma size;	    bfd_vma value;	    next_byte (&(ieee->h));	    /* Throw away the external reference index */	    (void) must_parse_int (&(ieee->h));	    /* Fetch the default size if not resolved */	    size = must_parse_int (&(ieee->h));	    /* Fetch the defautlt value if available */	    if (parse_int (&(ieee->h), &value) == false)	      {		value = 0;	      }	    /* This turns into a common */	    symbol->symbol.section = bfd_com_section_ptr;	    symbol->symbol.value = size;	  }	  break;	case ieee_external_reference_enum:	  next_byte (&(ieee->h));	  symbol = get_symbol (abfd, ieee, symbol, &symbol_count,			       &prev_reference_ptr,			       &ieee->external_reference_max_index, 'X');	  if (symbol == NULL)	    return false;	  symbol->symbol.the_bfd = abfd;	  symbol->symbol.name = read_id (&(ieee->h));	  symbol->symbol.udata.p = (PTR) NULL;	  symbol->symbol.section = bfd_und_section_ptr;	  symbol->symbol.value = (bfd_vma) 0;	  symbol->symbol.flags = 0;	  BFD_ASSERT (symbol->index >= ieee->external_reference_min_index);	  break;	default:	  loop = false;	}    }  if (ieee->external_symbol_max_index != 0)    {      ieee->external_symbol_count =	ieee->external_symbol_max_index -	ieee->external_symbol_min_index + 1;    }  else    {      ieee->external_symbol_count = 0;    }  if (ieee->external_reference_max_index != 0)    {      ieee->external_reference_count =	ieee->external_reference_max_index -	ieee->external_reference_min_index + 1;    }  else    {      ieee->external_reference_count = 0;    }  abfd->symcount =    ieee->external_reference_count + ieee->external_symbol_count;  if (symbol_count != abfd->symcount)    {      /* There are gaps in the table -- */      ieee->symbol_table_full = false;    }  *prev_symbols_ptr = (ieee_symbol_type *) NULL;  *prev_reference_ptr = (ieee_symbol_type *) NULL;  return true;}