section->flags |= SEC_LOAD | SEC_DATA;
section->flags |= SEC_DATA;
ieee_slurp_sections (abfd)     bfd *abfd;{  ieee_data_type *ieee = IEEE_DATA (abfd);  file_ptr offset = ieee->w.r.section_part;  asection *section = (asection *) NULL;  char *name;  if (offset != 0)    {      bfd_byte section_type[3];      ieee_seek (abfd, offset);      while (true)	{	  switch (this_byte (&(ieee->h)))	    {	    case ieee_section_type_enum:	      {		unsigned int section_index;		next_byte (&(ieee->h));		section_index = must_parse_int (&(ieee->h));		/* Fixme to be nice about a silly number of sections */		BFD_ASSERT (section_index < NSECTIONS);		section = get_section_entry (abfd, ieee, section_index);		section_type[0] = this_byte_and_next (&(ieee->h));		switch (section_type[0])		  {		  case 0xC1:		    /* Normal attributes for absolute sections	*/		    section_type[1] = this_byte (&(ieee->h));		    section->flags = SEC_LOAD | SEC_ALLOC | SEC_HAS_CONTENTS;		    switch (section_type[1])		      {		      case 0xD3:	/* AS Absolute section attributes */			next_byte (&(ieee->h));			section_type[2] = this_byte (&(ieee->h));			switch (section_type[2])			  {			  case 0xD0:			    /* Normal code */			    next_byte (&(ieee->h));			    section->flags |= SEC_LOAD | SEC_CODE;			    break;			  case 0xC4:			    next_byte (&(ieee->h));			    section->flags |= SEC_LOAD | SEC_DATA;			    /* Normal data */			    break;			  case 0xD2:			    next_byte (&(ieee->h));			    /* Normal rom data */			    section->flags |= SEC_LOAD | SEC_ROM | SEC_DATA;			    break;			  default:			    break;			  }		      }		    break;		  case 0xC3:	/* Named relocatable sections (type C) */		    section_type[1] = this_byte (&(ieee->h));		    section->flags = SEC_LOAD | SEC_ALLOC | SEC_HAS_CONTENTS;		    switch (section_type[1])		      {		      case 0xD0:	/* Normal code (CP) */			next_byte (&(ieee->h));			section->flags |= SEC_LOAD | SEC_CODE;			break;		      case 0xC4:	/* Normal data (CD) */			next_byte (&(ieee->h));			section->flags |= SEC_LOAD | SEC_DATA;			break;		      case 0xD2:	/* Normal rom data (CR) */			next_byte (&(ieee->h));			section->flags |= SEC_LOAD | SEC_ROM | SEC_DATA;			break;		      default:			break;		      }		  }		/* Read section name, use it if non empty. */		name = read_id (&ieee->h);		if (name[0])		  section->name = name;		/* Skip these fields, which we don't care about */		{		  bfd_vma parent, brother, context;		  parse_int (&(ieee->h), &parent);		  parse_int (&(ieee->h), &brother);		  parse_int (&(ieee->h), &context);		}	      }	      break;	    case ieee_section_alignment_enum:	      {		unsigned int section_index;		bfd_vma value;		asection *section;		next_byte (&(ieee->h));		section_index = must_parse_int (&ieee->h);		section = get_section_entry (abfd, ieee, section_index);		if (section_index > ieee->section_count)		  {		    ieee->section_count = section_index;		  }		section->alignment_power =		  bfd_log2 (must_parse_int (&ieee->h));		(void) parse_int (&(ieee->h), &value);	      }	      break;	    case ieee_e2_first_byte_enum:	      {		ieee_record_enum_type t = (ieee_record_enum_type) (read_2bytes (&(ieee->h)));		switch (t)		  {		  case ieee_section_size_enum:		    section = ieee->section_table[must_parse_int (&(ieee->h))];		    section->_raw_size = must_parse_int (&(ieee->h));		    break;		  case ieee_physical_region_size_enum:		    section = ieee->section_table[must_parse_int (&(ieee->h))];		    section->_raw_size = must_parse_int (&(ieee->h));		    break;		  case ieee_region_base_address_enum:		    section = ieee->section_table[must_parse_int (&(ieee->h))];		    section->vma = must_parse_int (&(ieee->h));		    break;		  case ieee_mau_size_enum:		    must_parse_int (&(ieee->h));		    must_parse_int (&(ieee->h));		    break;		  case ieee_m_value_enum:		    must_parse_int (&(ieee->h));		    must_parse_int (&(ieee->h));		    break;		  case ieee_section_base_address_enum:		    section = ieee->section_table[must_parse_int (&(ieee->h))];		    section->vma = must_parse_int (&(ieee->h));		    break;		  case ieee_section_offset_enum:		    (void) must_parse_int (&(ieee->h));		    (void) must_parse_int (&(ieee->h));		    break;		  default:		    return;		  }	      }	      break;	    default:	      return;	    }	}    }}