From 564e46b795ea9ef95ec662f01139a97717de1603 Mon Sep 17 00:00:00 2001 From: Jiong Wang Date: Mon, 3 Jul 2017 17:15:26 +0100 Subject: [PATCH] [AArch64] Remove useless and incorrect assertion The outer caller elf_link_output_extsym in elflink.c is a traverse function on all external symbol, and it will only call *finish_dynamic_symbol if some conditions is meet. It is executed conditionally. If the condition to trigger that assertion is satisified, it then won't satify the outer check in finish_dynamic_symbol, so *finish_dynamic_symbol won't be called that the assertion is expected to be dead code. If elf_link_output_extsym is a traverse function that unconditionally called on external symbols decided to be exported, then an assertion to make sure these symbols are in sane status might make sense. bfd/ * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Remove the sanity check at the head of this function. --- bfd/ChangeLog | 5 +++++ bfd/elfnn-aarch64.c | 7 ------- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index b2b028fe59b..810a5554840 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2017-07-04 Jiong Wang + + * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Remove the + sanity check at the head of this function. + 2017-07-04 Jan Kratochvil * dwarf2.c (struct dwarf2_debug): Add fields dwarf_line_str_buffer and diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index 11954486e16..86bae0eaa8e 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -8892,13 +8892,6 @@ elfNN_aarch64_finish_dynamic_symbol (bfd *output_bfd, struct elf_aarch64_link_hash_table *htab; htab = elf_aarch64_hash_table (info); - /* Sanity check to make sure no unexpected symbol reaches here. */ - if (h->dynindx == -1 - && !h->forced_local - && h->root.type != bfd_link_hash_undefweak - && bfd_link_pic (info)) - abort (); - if (h->plt.offset != (bfd_vma) - 1) { asection *plt, *gotplt, *relplt; -- 2.30.2