(cris_elf_relocate_section) <R_CRIS_8, R_CRIS_16, R_CRIS_32>: Add missing
[platform/upstream/binutils.git] / bfd / elf32-cris.c
index 389798d..1f4b0dd 100644 (file)
@@ -1494,7 +1494,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                   && r_type != R_CRIS_16_PCREL
                   && r_type != R_CRIS_32_PCREL)
                  || (!info->symbolic
-                     || !h->def_regular)))
+                     || (h != NULL && !h->def_regular))))
            {
              Elf_Internal_Rela outrel;
              bfd_byte *loc;
@@ -3024,6 +3024,11 @@ elf_cris_copy_indirect_symbol (struct bfd_link_info *info,
   edir = (struct elf_cris_link_hash_entry *) dir;
   eind = (struct elf_cris_link_hash_entry *) ind;
 
+  /* Only indirect symbols are replaced; we're not interested in
+     updating any of EIND's fields for other symbols.  */
+  if (eind->root.root.type != bfd_link_hash_indirect)
+    return;
+
   BFD_ASSERT (edir->pcrel_relocs_copied == NULL);
   BFD_ASSERT (edir->gotplt_offset == 0 || eind->gotplt_offset == 0);