* elf64-ppc.c (ppc64_elf_gc_mark_hook): Don't hang forever in loop.
authorAlan Modra <amodra@gmail.com>
Tue, 17 Jan 2006 13:00:16 +0000 (13:00 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 17 Jan 2006 13:00:16 +0000 (13:00 +0000)
bfd/ChangeLog
bfd/elf64-ppc.c

index 7f3da73..eb9e0d1 100644 (file)
@@ -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
index a2cfaac..501d4b7 100644 (file)
@@ -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