Automatic date update in version.in
[external/binutils.git] / bfd / elf32-hppa.c
index 722452b..a61adbc 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for HP PA-RISC ELF files.
-   Copyright (C) 1990-2018 Free Software Foundation, Inc.
+   Copyright (C) 1990-2019 Free Software Foundation, Inc.
 
    Original code by
        Center for Software Science
@@ -503,6 +503,8 @@ hppa_get_stub_entry (const asection *input_section,
      more than one stub used to reach say, printf, and we need to
      distinguish between them.  */
   id_sec = htab->stub_group[input_section->id].link_sec;
+  if (id_sec == NULL)
+    return NULL;
 
   if (hh != NULL && hh->hsh_cache != NULL
       && hh->hsh_cache->hh == hh
@@ -1271,9 +1273,7 @@ elf32_hppa_check_relocs (bfd *abfd,
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
        case R_PARISC_GNU_VTENTRY:
-         BFD_ASSERT (hh != NULL);
-         if (hh != NULL
-             && !bfd_elf_gc_record_vtentry (abfd, sec, &hh->eh, rela->r_addend))
+         if (!bfd_elf_gc_record_vtentry (abfd, sec, &hh->eh, rela->r_addend))
            return FALSE;
          continue;
 
@@ -2795,6 +2795,9 @@ elf32_hppa_size_stubs
              /* If there aren't any relocs, then there's nothing more
                 to do.  */
              if ((section->flags & SEC_RELOC) == 0
+                 || (section->flags & SEC_ALLOC) == 0
+                 || (section->flags & SEC_LOAD) == 0
+                 || (section->flags & SEC_CODE) == 0
                  || section->reloc_count == 0)
                continue;
 
@@ -3278,7 +3281,7 @@ final_link_relocate (asection *input_section,
                  || hh->eh.root.type == bfd_link_hash_defweak)))
        {
          hsh = hppa_get_stub_entry (input_section, sym_sec,
-                                           hh, rela, htab);
+                                    hh, rela, htab);
          if (hsh != NULL)
            {
              value = (hsh->stub_offset
@@ -3478,7 +3481,7 @@ final_link_relocate (asection *input_section,
       if (value + addend + max_branch_offset >= 2*max_branch_offset)
        {
          hsh = hppa_get_stub_entry (input_section, sym_sec,
-                                           hh, rela, htab);
+                                    hh, rela, htab);
          if (hsh == NULL)
            return bfd_reloc_undefined;