diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index b89d3dd..cb147b4e 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -2277,6 +2277,8 @@
   (bfd *, Elf_Internal_Shdr *, size_t, size_t, Elf_Internal_Sym *, void *,
    Elf_External_Sym_Shndx *);
 extern char * bfd_elf_get_str_section (bfd *, unsigned int);
+extern const char *bfd_elf_sym_name_raw
+  (bfd *, Elf_Internal_Shdr *, Elf_Internal_Sym *);
 extern const char *bfd_elf_sym_name
   (bfd *, Elf_Internal_Shdr *, Elf_Internal_Sym *, asection *);
 
diff --git a/bfd/elf.c b/bfd/elf.c
index 7d3d206..38bfb1c 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -531,12 +531,10 @@
 
 /* Look up a symbol name.  */
 const char *
-bfd_elf_sym_name (bfd *abfd,
-		  Elf_Internal_Shdr *symtab_hdr,
-		  Elf_Internal_Sym *isym,
-		  asection *sym_sec)
+bfd_elf_sym_name_raw (bfd *abfd,
+		      Elf_Internal_Shdr *symtab_hdr,
+		      Elf_Internal_Sym *isym)
 {
-  const char *name;
   unsigned int iname = isym->st_name;
   unsigned int shindex = symtab_hdr->sh_link;
 
@@ -548,8 +546,19 @@
       shindex = elf_elfheader (abfd)->e_shstrndx;
     }
 
-  name = bfd_elf_string_from_elf_section (abfd, shindex, iname);
-  if (sym_sec && name && *name == '\0')
+  return bfd_elf_string_from_elf_section (abfd, shindex, iname);
+}
+
+const char *
+bfd_elf_sym_name (bfd *abfd,
+		  Elf_Internal_Shdr *symtab_hdr,
+		  Elf_Internal_Sym *isym,
+		  asection *sym_sec)
+{
+  const char *name = bfd_elf_sym_name_raw (abfd, symtab_hdr, isym);
+  if (name == NULL)
+    name = "<null>";
+  else if (sym_sec && *name == '\0')
     name = bfd_section_name (sym_sec);
 
   return name;
@@ -581,7 +590,7 @@
 			    &isym, esym, &eshndx) == NULL)
     return NULL;
 
-  return bfd_elf_sym_name (abfd, hdr, &isym, NULL);
+  return bfd_elf_sym_name_raw (abfd, hdr, &isym);
 }
 
 static bool
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index f27c062..2e8d595 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -1723,7 +1723,7 @@
 		      name = h->root.root.string;
 		    else
 		      name = bfd_elf_sym_name (abfd, symtab_hdr, isym,
-					     NULL);
+					       NULL);
 		    _bfd_error_handler
 		      /* xgettext:c-format */
 		      (_("%pB: `%s' accessed both as normal and "
diff --git a/bfd/elfcode.h b/bfd/elfcode.h
index 3dcba4c..6aebcc6 100644
--- a/bfd/elfcode.h
+++ b/bfd/elfcode.h
@@ -1355,7 +1355,7 @@
 	    sym->symbol.name = (elf_tdata (abfd)->dt_strtab
 				+ isym->st_name);
 	  else
-	    sym->symbol.name = bfd_elf_sym_name (abfd, hdr, isym, NULL);
+	    sym->symbol.name = bfd_elf_sym_name_raw (abfd, hdr, isym);
 	  sym->symbol.value = isym->st_value;
 
 	  if (isym->st_shndx == SHN_UNDEF)
