aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-03-18 07:31:47 +1030
committerAlan Modra <amodra@gmail.com>2020-03-20 11:02:49 +1030
commita859124df20f6544dbef96084e4e024bccebd853 (patch)
tree2722e09a084496b2acf4a26ae937df56cfbf0086 /bfd
parentce2ea1c7e055b3b70f03dc33db3b77b0d775f5de (diff)
downloadbinutils-a859124df20f6544dbef96084e4e024bccebd853.zip
binutils-a859124df20f6544dbef96084e4e024bccebd853.tar.gz
binutils-a859124df20f6544dbef96084e4e024bccebd853.tar.bz2
tidy elf_backend calls
Function pointers in elfNN_bed that are initialized by elfxx-target.h to non-zero values generally don't need a non-NULL test before calling them. Targets don't set a non-NULL function to NULL. The one exception being elfnn-ia64.c and that exception is removed here. * elf.c (_bfd_elf_setup_sections): Don't test known non-NULL backend functions for NULL before calling. (copy_special_section_fields, _bfd_elf_copy_private_bfd_data), (bfd_section_from_shdr, assign_section_numbers): Likewise. * elfcode.h (elf_write_relocs, elf_slurp_reloc_table): Likewise. * elfnn-ia64.c (ignore_errors): New function. (elf_backend_link_order_error_handler): Redefine as ignore_errors.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog10
-rw-r--r--bfd/elf.c33
-rw-r--r--bfd/elfcode.h14
-rw-r--r--bfd/elfnn-ia64.c7
4 files changed, 37 insertions, 27 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c582772..6c2e26d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,13 @@
+2020-03-20 Alan Modra <amodra@gmail.com>
+
+ * elf.c (_bfd_elf_setup_sections): Don't test known non-NULL
+ backend functions for NULL before calling.
+ (copy_special_section_fields, _bfd_elf_copy_private_bfd_data),
+ (bfd_section_from_shdr, assign_section_numbers): Likewise.
+ * elfcode.h (elf_write_relocs, elf_slurp_reloc_table): Likewise.
+ * elfnn-ia64.c (ignore_errors): New function.
+ (elf_backend_link_order_error_handler): Redefine as ignore_errors.
+
2020-03-19 Nick Clifton <nickc@redhat.com>
PR 25676
diff --git a/bfd/elf.c b/bfd/elf.c
index 6cbc389..975eeb0 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -857,11 +857,10 @@ _bfd_elf_setup_sections (bfd *abfd)
if (elfsec == 0)
{
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
- if (bed->link_order_error_handler)
- bed->link_order_error_handler
- /* xgettext:c-format */
- (_("%pB: warning: sh_link not set for section `%pA'"),
- abfd, s);
+ bed->link_order_error_handler
+ /* xgettext:c-format */
+ (_("%pB: warning: sh_link not set for section `%pA'"),
+ abfd, s);
}
else
{
@@ -1424,9 +1423,8 @@ copy_special_section_fields (const bfd *ibfd,
}
/* Allow the target a chance to decide how these fields should be set. */
- if (bed->elf_backend_copy_special_section_fields != NULL
- && bed->elf_backend_copy_special_section_fields
- (ibfd, obfd, iheader, oheader))
+ if (bed->elf_backend_copy_special_section_fields (ibfd, obfd,
+ iheader, oheader))
return TRUE;
/* We have an iheader which might match oheader, and which has non-zero
@@ -1610,8 +1608,8 @@ _bfd_elf_copy_private_bfd_data (bfd *ibfd, bfd *obfd)
{
/* Final attempt. Call the backend copy function
with a NULL input section. */
- if (bed->elf_backend_copy_special_section_fields != NULL)
- (void) bed->elf_backend_copy_special_section_fields (ibfd, obfd, NULL, oheader);
+ (void) bed->elf_backend_copy_special_section_fields (ibfd, obfd,
+ NULL, oheader);
}
}
@@ -2462,12 +2460,12 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex)
sections. */
if (*p_hdr != NULL)
{
- if (bed->init_secondary_reloc_section == NULL
- || ! bed->init_secondary_reloc_section (abfd, hdr, name, shindex))
+ if (!bed->init_secondary_reloc_section (abfd, hdr, name, shindex))
{
_bfd_error_handler
/* xgettext:c-format */
- (_("%pB: warning: secondary relocation section '%s' for section %pA found - ignoring"),
+ (_("%pB: warning: secondary relocation section '%s' "
+ "for section %pA found - ignoring"),
abfd, name, target_sect);
}
goto success;
@@ -3940,11 +3938,10 @@ assign_section_numbers (bfd *abfd, struct bfd_link_info *link_info)
where s is NULL. */
const struct elf_backend_data *bed
= get_elf_backend_data (abfd);
- if (bed->link_order_error_handler)
- bed->link_order_error_handler
- /* xgettext:c-format */
- (_("%pB: warning: sh_link not set for section `%pA'"),
- abfd, sec);
+ bed->link_order_error_handler
+ /* xgettext:c-format */
+ (_("%pB: warning: sh_link not set for section `%pA'"),
+ abfd, sec);
}
}
diff --git a/bfd/elfcode.h b/bfd/elfcode.h
index 7745c53..68db3e9 100644
--- a/bfd/elfcode.h
+++ b/bfd/elfcode.h
@@ -987,12 +987,11 @@ elf_write_relocs (bfd *abfd, asection *sec, void *data)
(*swap_out) (abfd, &src_rela, dst_rela);
}
- if (bed->write_secondary_relocs != NULL)
- if (! bed->write_secondary_relocs (abfd, sec))
- {
- *failedp = TRUE;
- return;
- }
+ if (!bed->write_secondary_relocs (abfd, sec))
+ {
+ *failedp = TRUE;
+ return;
+ }
}
/* Write out the program headers. */
@@ -1596,8 +1595,7 @@ elf_slurp_reloc_table (bfd *abfd,
symbols, dynamic))
return FALSE;
- if (bed->slurp_secondary_relocs != NULL
- && ! bed->slurp_secondary_relocs (abfd, asect, symbols))
+ if (!bed->slurp_secondary_relocs (abfd, asect, symbols))
return FALSE;
asect->relocation = relents;
diff --git a/bfd/elfnn-ia64.c b/bfd/elfnn-ia64.c
index 208b85d..cd94158 100644
--- a/bfd/elfnn-ia64.c
+++ b/bfd/elfnn-ia64.c
@@ -5015,6 +5015,11 @@ elfNN_hpux_backend_symbol_processing (bfd *abfd ATTRIBUTE_UNUSED,
break;
}
}
+
+static void
+ignore_errors (const char *fmt ATTRIBUTE_UNUSED, ...)
+{
+}
#define TARGET_LITTLE_SYM ia64_elfNN_le_vec
#define TARGET_LITTLE_NAME "elfNN-ia64-little"
@@ -5112,7 +5117,7 @@ elfNN_hpux_backend_symbol_processing (bfd *abfd ATTRIBUTE_UNUSED,
We don't want to flood users with so many error messages. We turn
off the warning for now. It will be turned on later when the Intel
compiler is fixed. */
-#define elf_backend_link_order_error_handler NULL
+#define elf_backend_link_order_error_handler ignore_errors
#include "elfNN-target.h"