From: Alan Modra Date: Sat, 3 Dec 2016 10:27:27 +0000 (+1030) Subject: Indirect and warning symbols X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8400d40d954ec3b4a3fe9200645a1b6e90ba46f4;p=binutils-gdb.git Indirect and warning symbols It's possible but unlikely that an indirect symbol points at a warning symbol. * elf64-ppc.c (add_symbol_adjust): Correct order of tests for warning and indirect symbols. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 84ac6c0e3a2..7ec26b01b97 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2016-12-03 Alan Modra + + * elf64-ppc.c (add_symbol_adjust): Correct order of tests for + warning and indirect symbols. + 2016-12-03 Alan Modra * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy dynamic diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index bfdfc09cc80..d7d6adb9342 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -5063,12 +5063,12 @@ add_symbol_adjust (struct ppc_link_hash_entry *eh, struct bfd_link_info *info) struct ppc_link_hash_table *htab; struct ppc_link_hash_entry *fdh; - if (eh->elf.root.type == bfd_link_hash_indirect) - return TRUE; - if (eh->elf.root.type == bfd_link_hash_warning) eh = (struct ppc_link_hash_entry *) eh->elf.root.u.i.link; + if (eh->elf.root.type == bfd_link_hash_indirect) + return TRUE; + if (eh->elf.root.root.string[0] != '.') abort ();