{ bfd_set_error (bfd_error_no_memory); goto fail; }
goto fail;
coff_real_object_p (abfd, nscns, internal_f, internal_a)     bfd *abfd;     unsigned nscns;     struct internal_filehdr *internal_f;     struct internal_aouthdr *internal_a;{  flagword oflags = abfd->flags;  bfd_vma ostart = bfd_get_start_address (abfd);  PTR tdata;  size_t readsize;		/* length of file_info */  unsigned int scnhsz;  char *external_sections;  if (!(internal_f->f_flags & F_RELFLG))    abfd->flags |= HAS_RELOC;  if ((internal_f->f_flags & F_EXEC))    abfd->flags |= EXEC_P;  if (!(internal_f->f_flags & F_LNNO))    abfd->flags |= HAS_LINENO;  if (!(internal_f->f_flags & F_LSYMS))    abfd->flags |= HAS_LOCALS;  /* FIXME: How can we set D_PAGED correctly?  */  if ((internal_f->f_flags & F_EXEC) != 0)    abfd->flags |= D_PAGED;  bfd_get_symcount (abfd) = internal_f->f_nsyms;  if (internal_f->f_nsyms)    abfd->flags |= HAS_SYMS;  if (internal_a != (struct internal_aouthdr *) NULL)    bfd_get_start_address (abfd) = internal_a->entry;  else    bfd_get_start_address (abfd) = 0;  /* Set up the tdata area.  ECOFF uses its own routine, and overrides     abfd->flags.  */  tdata = bfd_coff_mkobject_hook (abfd, (PTR) internal_f, (PTR) internal_a);  if (tdata == NULL)    return 0;  scnhsz = bfd_coff_scnhsz (abfd);  readsize = nscns * scnhsz;  external_sections = (char *) bfd_alloc (abfd, readsize);  if (!external_sections)    {      bfd_set_error (bfd_error_no_memory);      goto fail;    }  if (bfd_read ((PTR) external_sections, 1, readsize, abfd) != readsize)    goto fail;  /* Now copy data as required; construct all asections etc */  if (nscns != 0)    {      unsigned int i;      for (i = 0; i < nscns; i++)	{	  struct internal_scnhdr tmp;	  bfd_coff_swap_scnhdr_in (abfd,				   (PTR) (external_sections + i * scnhsz),				   (PTR) & tmp);	  make_a_section_from_file (abfd, &tmp, i + 1);	}    }  /*  make_abs_section (abfd); */  if (bfd_coff_set_arch_mach_hook (abfd, (PTR) internal_f) == false)    goto fail;  return abfd->xvec; fail:  bfd_release (abfd, tdata);  abfd->flags = oflags;  bfd_get_start_address (abfd) = ostart;  return (const bfd_target *) NULL;}