diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c index 3f60d097e6..4d36a41756 100644 --- a/bfd/elf32-arc.c +++ b/bfd/elf32-arc.c @@ -1976,7 +1976,12 @@ elf_arc_check_relocs (bfd * abfd, if (r_symndx < symtab_hdr->sh_info) /* Is a local symbol. */ h = NULL; else /* Global one. */ - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + { + h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + while (h->root.type == bfd_link_hash_indirect + || h->root.type == bfd_link_hash_warning) + h = (struct elf_link_hash_entry *) h->root.u.i.link; + } switch (r_type)