aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2016-12-03 20:57:27 +1030
committerAlan Modra <amodra@gmail.com>2016-12-03 20:57:27 +1030
commit8400d40d954ec3b4a3fe9200645a1b6e90ba46f4 (patch)
treeb18c124b37a02662d1efde529bd20ffd3325d3ad /bfd
parent474436e67c72d2426e79e600d725812514db0dbe (diff)
downloadgdb-8400d40d954ec3b4a3fe9200645a1b6e90ba46f4.zip
gdb-8400d40d954ec3b4a3fe9200645a1b6e90ba46f4.tar.gz
gdb-8400d40d954ec3b4a3fe9200645a1b6e90ba46f4.tar.bz2
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.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf64-ppc.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 84ac6c0..7ec26b0 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,10 @@
2016-12-03 Alan Modra <amodra@gmail.com>
+ * elf64-ppc.c (add_symbol_adjust): Correct order of tests for
+ warning and indirect symbols.
+
+2016-12-03 Alan Modra <amodra@gmail.com>
+
* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy dynamic
flags when direct symbol is versioned_hidden.
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index bfdfc09..d7d6adb 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 ();