/* BFD back-end for ieee-695 objects.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001
+ 2000, 2001, 2002
Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support.
-This file is part of BFD, the Binary File Descriptor library.
+ This file is part of BFD, the Binary File Descriptor library.
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define KEEPMINUSPCININST 0
#include "libbfd.h"
#include "ieee.h"
#include "libieee.h"
-
-#include <ctype.h>
+#include "safe-ctype.h"
struct output_buffer_struct
{
common_header_type *ieee;
{
bfd_vma result;
- BFD_ASSERT (parse_int (ieee, &result) == true);
+ BFD_ASSERT (parse_int (ieee, &result));
return result;
}
break;
default:
(*_bfd_error_handler)
- (_("%s: unimplemented ATI record %u for symbol %u"),
- bfd_get_filename (abfd), symbol_attribute_def,
+ (_("%s: unimplemented ATI record %u for symbol %u"),
+ bfd_archive_filename (abfd), symbol_attribute_def,
symbol_name_index);
bfd_set_error (bfd_error_bad_value);
return false;
{
(*_bfd_error_handler)
(_("%s: unexpected ATN type %d in external part"),
- bfd_get_filename (abfd), (int) value);
+ bfd_archive_filename (abfd), (int) value);
bfd_set_error (bfd_error_bad_value);
return false;
}
default:
(*_bfd_error_handler)
(_("%s: unexpected type after ATN"),
- bfd_get_filename (abfd));
+ bfd_archive_filename (abfd));
bfd_set_error (bfd_error_bad_value);
return false;
}
/* 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)
+ if (! parse_int (&(ieee->h), &value))
{
value = 0;
}
ieee_slurp_symbol_table (abfd)
bfd *abfd;
{
- if (IEEE_DATA (abfd)->read_symbols == false)
+ if (! IEEE_DATA (abfd)->read_symbols)
{
if (! ieee_slurp_external_symbols (abfd))
return false;
if (! ieee_slurp_symbol_table (abfd))
return -1;
- if (ieee->symbol_table_full == false)
+ if (! ieee->symbol_table_full)
{
/* Arrgh - there are gaps in the table, run through and fill them */
/* up with pointers to a null place */
abfd->tdata.ieee_ar_data = (ieee_ar_data_type *) bfd_alloc (abfd, amt);
if (!abfd->tdata.ieee_ar_data)
- goto error_return;
+ goto error_ret_restore;
ieee = IEEE_AR_DATA (abfd);
/* Ignore the return value here. It doesn't matter if we don't read
return abfd->xvec;
got_wrong_format_error:
- bfd_release (abfd, ieee);
- abfd->tdata.ieee_ar_data = save;
bfd_set_error (bfd_error_wrong_format);
-
error_return:
if (elts != NULL)
free (elts);
+ bfd_release (abfd, ieee);
+ error_ret_restore:
+ abfd->tdata.ieee_ar_data = save;
return NULL;
}
strcpy (family, "68332"); /* Guess it will be CPU32 */
}
}
- else if (toupper (processor[3]) == 'F') /* 68F333 */
- strcpy (family, "68332"); /* CPU32 */
- else if ((toupper (processor[3]) == 'C') /* Embedded controllers */
- && ((toupper (processor[2]) == 'E')
- || (toupper (processor[2]) == 'H')
- || (toupper (processor[2]) == 'L')))
+ else if (TOUPPER (processor[3]) == 'F') /* 68F333 */
+ strcpy (family, "68332"); /* CPU32 */
+ else if ((TOUPPER (processor[3]) == 'C') /* Embedded controllers */
+ && ((TOUPPER (processor[2]) == 'E')
+ || (TOUPPER (processor[2]) == 'H')
+ || (TOUPPER (processor[2]) == 'L')))
{
strcpy (family, "68");
strncat (family, processor + 4, 7);
}
next_byte (&(ieee->h));
- if (parse_int (&(ieee->h), &ieee->ad.number_of_bits_mau) == false)
+ if (! parse_int (&(ieee->h), &ieee->ad.number_of_bits_mau))
{
goto fail;
}
- if (parse_int (&(ieee->h), &ieee->ad.number_of_maus_in_address) == false)
+ if (! parse_int (&(ieee->h), &ieee->ad.number_of_maus_in_address))
{
goto fail;
}
}
ieee->w.offset[part] = parse_i (&(ieee->h), &ok);
- if (ok == false)
+ if (! ok)
{
goto fail;
}
got_wrong_format:
bfd_set_error (bfd_error_wrong_format);
fail:
- (void) bfd_release (abfd, ieee);
+ bfd_release (abfd, ieee);
abfd->tdata.ieee_data = save;
return (const bfd_target *) NULL;
}
case 0:
case 4:
- if (pcrel == true)
+ if (pcrel)
{
#if KEEPMINUSPCININST
bfd_put_32 (ieee->h.abfd, -current_map->pc,
current_map->pc += 4;
break;
case 2:
- if (pcrel == true)
+ if (pcrel)
{
#if KEEPMINUSPCININST
bfd_put_16 (ieee->h.abfd, (bfd_vma) -current_map->pc,
current_map->pc += 2;
break;
case 1:
- if (pcrel == true)
+ if (pcrel)
{
#if KEEPMINUSPCININST
bfd_put_8 (ieee->h.abfd, (int) (-current_map->pc), location_ptr + current_map->pc);
default:
{
bfd_vma this_size;
- if (parse_int (&(ieee->h), &this_size) == true)
+ if (parse_int (&(ieee->h), &this_size))
{
unsigned int i;
for (i = 0; i < this_size; i++)
ieee_per_section_type *current_map = (ieee_per_section_type *) NULL;
asection *s;
/* Seek to the start of the data area */
- if (ieee->read_data == true)
+ if (ieee->read_data)
return true;
ieee->read_data = true;
ieee_seek (ieee, ieee->w.r.data_part);
if ((PTR) stream == (PTR) NULL)
{
/* Outputting a section without data, fill it up */
- stream = (unsigned char *) (bfd_alloc (abfd, s->_raw_size));
+ stream = (unsigned char *) bfd_zalloc (abfd, s->_raw_size);
if (!stream)
return false;
- memset ((PTR) stream, 0, (size_t) s->_raw_size);
}
while (current_byte_index < s->_raw_size)
{
output_buffer = 0;
amt = sizeof (ieee_data_type);
abfd->tdata.ieee_data = (ieee_data_type *) bfd_zalloc (abfd, amt);
- return abfd->tdata.ieee_data ? true : false;
+ return abfd->tdata.ieee_data != NULL;
}
static void
if (section->owner->xvec != abfd->xvec)
return;
/* Only bother once per bfd */
- if (ieee->done_debug == true)
+ if (ieee->done_debug)
return;
ieee->done_debug = true;
#define ieee_bfd_relax_section bfd_generic_relax_section
#define ieee_bfd_gc_sections bfd_generic_gc_sections
#define ieee_bfd_merge_sections bfd_generic_merge_sections
+#define ieee_bfd_discard_group bfd_generic_discard_group
#define ieee_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
+#define ieee_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
#define ieee_bfd_link_add_symbols _bfd_generic_link_add_symbols
+#define ieee_bfd_link_just_syms _bfd_generic_link_just_syms
#define ieee_bfd_final_link _bfd_generic_final_link
#define ieee_bfd_link_split_section _bfd_generic_link_split_section
/* ieee_sizeof_headers, ieee_bfd_get_relocated_section_contents,
ieee_bfd_relax_section, ieee_bfd_link_hash_table_create,
+ _bfd_generic_link_hash_table_free,
ieee_bfd_link_add_symbols, ieee_bfd_final_link,
ieee_bfd_link_split_section, ieee_bfd_gc_sections,
ieee_bfd_merge_sections */