Correct disassembly of dot product instructions.
[deliverable/binutils-gdb.git] / bfd / elfcode.h
index ef097f739cddc7e06c3a0e3a6fb65b348e0a3603..00684d596076759cb33cccf11da1b9832e95c2b8 100644 (file)
@@ -958,6 +958,12 @@ elf_write_relocs (bfd *abfd, asection *sec, void *data)
          return;
        }
 
+      if (ptr->howto == NULL)
+       {
+         *failedp = TRUE;
+         return;
+       }
+
       src_rela.r_offset = ptr->address + addr_offset;
       src_rela.r_info = ELF_R_INFO (n, ptr->howto->type);
       src_rela.r_addend = ptr->addend;
@@ -1190,9 +1196,9 @@ elf_slurp_symbol_table (bfd *abfd, asymbol **symptrs, bfd_boolean dynamic)
        {
          _bfd_error_handler
            /* xgettext:c-format */
-           (_("%B: version count (%ld) does not match symbol count (%ld)"),
+           (_("%B: version count (%Ld) does not match symbol count (%ld)"),
             abfd,
-            (long) (verhdr->sh_size / sizeof (Elf_External_Versym)),
+            verhdr->sh_size / sizeof (Elf_External_Versym),
             symcount);
 
          /* Slurp in the symbols without the version information,
@@ -1440,13 +1446,15 @@ elf_slurp_reloc_table_from_section (bfd *abfd,
        relent->address = rela.r_offset - asect->vma;
 
       if (ELF_R_SYM (rela.r_info) == STN_UNDEF)
+       /* FIXME: This and the error case below mean that we have a
+          symbol on relocs that is not elf_symbol_type.  */
        relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
       else if (ELF_R_SYM (rela.r_info) > symcount)
        {
          _bfd_error_handler
            /* xgettext:c-format */
            (_("%B(%A): relocation %d has invalid symbol index %ld"),
-            abfd, asect, i, ELF_R_SYM (rela.r_info));
+            abfd, asect, i, (long) ELF_R_SYM (rela.r_info));
          relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
        }
       else
This page took 0.032044 seconds and 4 git commands to generate.