diff options
-rw-r--r-- | bfd/ChangeLog | 4 | ||||
-rw-r--r-- | bfd/elf64-ppc.c | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7f3da73..eb9e0d1 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2006-01-17 Alan Modra <amodra@bigpond.net.au> + + * elf64-ppc.c (ppc64_elf_gc_mark_hook): Don't hang forever in loop. + 2006-01-17 Nick Clifton <nickc@redhat.com> PR binutils/2159 diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index a2cfaac..501d4b7 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -4958,7 +4958,7 @@ ppc64_elf_gc_mark_hook (asection *sec, struct bfd_sym_chain *sym = info->gc_sym_list; info->gc_sym_list = NULL; - do + for (; sym != NULL; sym = sym->next) { struct ppc_link_hash_entry *eh; @@ -4988,10 +4988,7 @@ ppc64_elf_gc_mark_hook (asection *sec, rsec = eh->elf.root.u.def.section; if (!rsec->gc_mark) _bfd_elf_gc_mark (info, rsec, ppc64_elf_gc_mark_hook); - - sym = sym->next; } - while (sym != NULL); } /* Syms return NULL if we're marking .opd, so we avoid marking all |