aboutsummaryrefslogtreecommitdiff
path: root/bfd/xcofflink.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/xcofflink.c')
-rw-r--r--bfd/xcofflink.c106
1 files changed, 32 insertions, 74 deletions
diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c
index 503b6ab..4497be2 100644
--- a/bfd/xcofflink.c
+++ b/bfd/xcofflink.c
@@ -227,8 +227,7 @@ xcoff_get_section_contents (bfd *abfd, asection *sec)
if (! bfd_malloc_and_get_section (abfd, sec, &contents))
{
- if (contents != NULL)
- free (contents);
+ free (contents);
return FALSE;
}
coff_section_data (abfd, sec)->contents = contents;
@@ -2179,7 +2178,6 @@ xcoff_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
/* If we are not keeping memory, free the reloc information. */
if (! info->keep_memory
&& coff_section_data (abfd, o) != NULL
- && coff_section_data (abfd, o)->relocs != NULL
&& ! coff_section_data (abfd, o)->keep_relocs)
{
free (coff_section_data (abfd, o)->relocs);
@@ -2189,11 +2187,8 @@ xcoff_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
/* Free up the line numbers. FIXME: We could cache these
somewhere for the final link, to avoid reading them again. */
- if (reloc_info[o->target_index].linenos != NULL)
- {
- free (reloc_info[o->target_index].linenos);
- reloc_info[o->target_index].linenos = NULL;
- }
+ free (reloc_info[o->target_index].linenos);
+ reloc_info[o->target_index].linenos = NULL;
}
free (reloc_info);
@@ -2207,10 +2202,8 @@ xcoff_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
{
for (o = abfd->sections; o != NULL; o = o->next)
{
- if (reloc_info[o->target_index].csects != NULL)
- free (reloc_info[o->target_index].csects);
- if (reloc_info[o->target_index].linenos != NULL)
- free (reloc_info[o->target_index].linenos);
+ free (reloc_info[o->target_index].csects);
+ free (reloc_info[o->target_index].linenos);
}
free (reloc_info);
}
@@ -2985,7 +2978,6 @@ xcoff_mark (struct bfd_link_info *info, asection *sec)
if (! info->keep_memory
&& coff_section_data (sec->owner, sec) != NULL
- && coff_section_data (sec->owner, sec)->relocs != NULL
&& ! coff_section_data (sec->owner, sec)->keep_relocs)
{
free (coff_section_data (sec->owner, sec)->relocs);
@@ -3971,10 +3963,8 @@ bfd_xcoff_size_dynamic_sections (bfd *output_bfd,
return TRUE;
error_return:
- if (ldinfo.strings != NULL)
- free (ldinfo.strings);
- if (debug_contents != NULL)
- free (debug_contents);
+ free (ldinfo.strings);
+ free (debug_contents);
return FALSE;
}
@@ -6207,31 +6197,16 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
}
/* Free up the buffers used by xcoff_link_input_bfd. */
- if (flinfo.internal_syms != NULL)
- {
- free (flinfo.internal_syms);
- flinfo.internal_syms = NULL;
- }
- if (flinfo.sym_indices != NULL)
- {
- free (flinfo.sym_indices);
- flinfo.sym_indices = NULL;
- }
- if (flinfo.linenos != NULL)
- {
- free (flinfo.linenos);
- flinfo.linenos = NULL;
- }
- if (flinfo.contents != NULL)
- {
- free (flinfo.contents);
- flinfo.contents = NULL;
- }
- if (flinfo.external_relocs != NULL)
- {
- free (flinfo.external_relocs);
- flinfo.external_relocs = NULL;
- }
+ free (flinfo.internal_syms);
+ flinfo.internal_syms = NULL;
+ free (flinfo.sym_indices);
+ flinfo.sym_indices = NULL;
+ free (flinfo.linenos);
+ flinfo.linenos = NULL;
+ free (flinfo.contents);
+ flinfo.contents = NULL;
+ free (flinfo.external_relocs);
+ flinfo.external_relocs = NULL;
/* The value of the last C_FILE symbol is supposed to be -1. Write
it out again. */
@@ -6250,11 +6225,8 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
input files. */
bfd_hash_traverse (&info->hash->table, xcoff_write_global_symbol, &flinfo);
- if (flinfo.outsyms != NULL)
- {
- free (flinfo.outsyms);
- flinfo.outsyms = NULL;
- }
+ free (flinfo.outsyms);
+ flinfo.outsyms = NULL;
/* Now that we have written out all the global symbols, we know the
symbol indices to use for relocs against them, and we can finally
@@ -6336,11 +6308,8 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
goto error_return;
}
- if (external_relocs != NULL)
- {
- free (external_relocs);
- external_relocs = NULL;
- }
+ free (external_relocs);
+ external_relocs = NULL;
/* Free up the section information. */
if (flinfo.section_info != NULL)
@@ -6349,10 +6318,8 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
for (i = 0; i < abfd->section_count; i++)
{
- if (flinfo.section_info[i].relocs != NULL)
- free (flinfo.section_info[i].relocs);
- if (flinfo.section_info[i].rel_hashes != NULL)
- free (flinfo.section_info[i].rel_hashes);
+ free (flinfo.section_info[i].relocs);
+ free (flinfo.section_info[i].rel_hashes);
}
free (flinfo.section_info);
flinfo.section_info = NULL;
@@ -6437,27 +6404,18 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
for (i = 0; i < abfd->section_count; i++)
{
- if (flinfo.section_info[i].relocs != NULL)
- free (flinfo.section_info[i].relocs);
- if (flinfo.section_info[i].rel_hashes != NULL)
- free (flinfo.section_info[i].rel_hashes);
+ free (flinfo.section_info[i].relocs);
+ free (flinfo.section_info[i].rel_hashes);
}
free (flinfo.section_info);
}
- if (flinfo.internal_syms != NULL)
- free (flinfo.internal_syms);
- if (flinfo.sym_indices != NULL)
- free (flinfo.sym_indices);
- if (flinfo.outsyms != NULL)
- free (flinfo.outsyms);
- if (flinfo.linenos != NULL)
- free (flinfo.linenos);
- if (flinfo.contents != NULL)
- free (flinfo.contents);
- if (flinfo.external_relocs != NULL)
- free (flinfo.external_relocs);
- if (external_relocs != NULL)
- free (external_relocs);
+ free (flinfo.internal_syms);
+ free (flinfo.sym_indices);
+ free (flinfo.outsyms);
+ free (flinfo.linenos);
+ free (flinfo.contents);
+ free (flinfo.external_relocs);
+ free (external_relocs);
return FALSE;
}