summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/test/MC/ARM/arm-elf-symver.s2
-rw-r--r--llvm/test/MC/ELF/alias.s2
-rw-r--r--llvm/test/MC/ELF/many-sections-2.s2
-rw-r--r--llvm/test/MC/ELF/section-sym.s2
-rw-r--r--llvm/test/MC/ELF/symver.s2
-rw-r--r--llvm/test/MC/ELF/weakref.s2
-rw-r--r--llvm/test/Object/readobj-shared-object.test20
-rw-r--r--llvm/test/tools/llvm-readobj/gnu-symbols.test16
-rw-r--r--llvm/test/tools/llvm-readobj/sections-ext.test2
-rw-r--r--llvm/tools/llvm-readobj/ELFDumper.cpp10
10 files changed, 35 insertions, 25 deletions
diff --git a/llvm/test/MC/ARM/arm-elf-symver.s b/llvm/test/MC/ARM/arm-elf-symver.s
index ce9c4fe5f00..8a0aefc68f6 100644
--- a/llvm/test/MC/ARM/arm-elf-symver.s
+++ b/llvm/test/MC/ARM/arm-elf-symver.s
@@ -78,7 +78,7 @@ global1:
@ CHECK-NEXT: Section: .text
@ CHECK-NEXT: }
@ CHECK-NEXT: Symbol {
-@ CHECK-NEXT: Name: (0)
+@ CHECK-NEXT: Name: .text (0)
@ CHECK-NEXT: Value: 0x0
@ CHECK-NEXT: Size: 0
@ CHECK-NEXT: Binding: Local (0x0)
diff --git a/llvm/test/MC/ELF/alias.s b/llvm/test/MC/ELF/alias.s
index df39fd4be14..c575ce81b41 100644
--- a/llvm/test/MC/ELF/alias.s
+++ b/llvm/test/MC/ELF/alias.s
@@ -107,7 +107,7 @@ leaq .Llocal1(%rip), %rdi
// CHECK-NEXT: Section: .text
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
-// CHECK-NEXT: Name: (0)
+// CHECK-NEXT: Name: .data (0)
// CHECK-NOT: Symbol {
// CHECK: }
// CHECK-NEXT: Symbol {
diff --git a/llvm/test/MC/ELF/many-sections-2.s b/llvm/test/MC/ELF/many-sections-2.s
index 2c3e4b87bb8..71ac870c8bc 100644
--- a/llvm/test/MC/ELF/many-sections-2.s
+++ b/llvm/test/MC/ELF/many-sections-2.s
@@ -32,7 +32,7 @@
// Test that this file has one section too many.
-// SYMBOLS: Name: (0)
+// SYMBOLS: Name: dm (0)
// SYMBOLS: Value: 0x0
// SYMBOLS: Size: 0
// SYMBOLS: Binding: Local (0x0)
diff --git a/llvm/test/MC/ELF/section-sym.s b/llvm/test/MC/ELF/section-sym.s
index 9e660526b7a..5d5486f9f7a 100644
--- a/llvm/test/MC/ELF/section-sym.s
+++ b/llvm/test/MC/ELF/section-sym.s
@@ -82,7 +82,7 @@
// CHECK-NEXT: Section: .group
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
-// CHECK-NEXT: Name: (0)
+// CHECK-NEXT: Name: foo (0)
// CHECK-NEXT: Value: 0x0
// CHECK-NEXT: Size: 0
// CHECK-NEXT: Binding: Local (0x0)
diff --git a/llvm/test/MC/ELF/symver.s b/llvm/test/MC/ELF/symver.s
index 0f434dd859d..8883d192d28 100644
--- a/llvm/test/MC/ELF/symver.s
+++ b/llvm/test/MC/ELF/symver.s
@@ -77,7 +77,7 @@ global1:
// CHECK-NEXT: Section: .text
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
-// CHECK-NEXT: Name: (0)
+// CHECK-NEXT: Name: .text (0)
// CHECK-NEXT: Value: 0x0
// CHECK-NEXT: Size: 0
// CHECK-NEXT: Binding: Local
diff --git a/llvm/test/MC/ELF/weakref.s b/llvm/test/MC/ELF/weakref.s
index d342c61f745..986e92d1d47 100644
--- a/llvm/test/MC/ELF/weakref.s
+++ b/llvm/test/MC/ELF/weakref.s
@@ -116,7 +116,7 @@ bar15:
// CHECK-NEXT: Section: .text
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
-// CHECK-NEXT: Name: (0)
+// CHECK-NEXT: Name: .text (0)
// CHECK-NEXT: Value: 0x0
// CHECK-NEXT: Size: 0
// CHECK-NEXT: Binding: Local
diff --git a/llvm/test/Object/readobj-shared-object.test b/llvm/test/Object/readobj-shared-object.test
index 59f5ff127cf..da594af799e 100644
--- a/llvm/test/Object/readobj-shared-object.test
+++ b/llvm/test/Object/readobj-shared-object.test
@@ -128,61 +128,61 @@ ELF: ]
ELF: Symbols [
ELF: Symbol {
-ELF: Name: (0)
+ELF: Name: .hash (0)
ELF: Binding: Local
ELF: Type: Section
ELF: Section: .hash
ELF: }
ELF: Symbol {
-ELF: Name: (0)
+ELF: Name: .dynsym (0)
ELF: Binding: Local
ELF: Type: Section
ELF: Section: .dynsym
ELF: }
ELF: Symbol {
-ELF: Name: (0)
+ELF: Name: .dynstr (0)
ELF: Binding: Local
ELF: Type: Section
ELF: Section: .dynstr
ELF: }
ELF: Symbol {
-ELF: Name: (0)
+ELF: Name: .text (0)
ELF: Binding: Local
ELF: Type: Section
ELF: Section: .text
ELF: }
ELF: Symbol {
-ELF: Name: (0)
+ELF: Name: .eh_frame (0)
ELF: Binding: Local
ELF: Type: Section
ELF: Section: .eh_frame
ELF: }
ELF: Symbol {
-ELF: Name: (0)
+ELF: Name: .tdata (0)
ELF: Binding: Local
ELF: Type: Section
ELF: Section: .tdata
ELF: }
ELF: Symbol {
-ELF: Name: (0)
+ELF: Name: .dynamic (0)
ELF: Binding: Local
ELF: Type: Section
ELF: Section: .dynamic
ELF: }
ELF: Symbol {
-ELF: Name: (0)
+ELF: Name: .got.plt (0)
ELF: Binding: Local
ELF: Type: Section
ELF: Section: .got.plt
ELF: }
ELF: Symbol {
-ELF: Name: (0)
+ELF: Name: .data (0)
ELF: Binding: Local
ELF: Type: Section
ELF: Section: .data
ELF: }
ELF: Symbol {
-ELF: Name: (0)
+ELF: Name: .bss (0)
ELF: Binding: Local
ELF: Type: Section
ELF: Section: .bss
diff --git a/llvm/test/tools/llvm-readobj/gnu-symbols.test b/llvm/test/tools/llvm-readobj/gnu-symbols.test
index 18d43f6290d..2d864d426c5 100644
--- a/llvm/test/tools/llvm-readobj/gnu-symbols.test
+++ b/llvm/test/tools/llvm-readobj/gnu-symbols.test
@@ -20,9 +20,9 @@ ELF32-NEXT: 4: 00000000 4 OBJECT GLOBAL DEFAULT 3 y
ELF64: Symbol table '.symtab' contains 6 entries:
ELF64-NEXT: Num: Value Size Type Bind Vis Ndx Name
ELF64-NEXT: 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
-ELF64-NEXT: 1: 0000000000000000 0 SECTION LOCAL DEFAULT 1
-ELF64-NEXT: 2: 0000000000000000 0 SECTION LOCAL DEFAULT 3
-ELF64-NEXT: 3: 0000000000000000 0 SECTION LOCAL DEFAULT 4
+ELF64-NEXT: 1: 0000000000000000 0 SECTION LOCAL DEFAULT 1 .text
+ELF64-NEXT: 2: 0000000000000000 0 SECTION LOCAL DEFAULT 3 .data
+ELF64-NEXT: 3: 0000000000000000 0 SECTION LOCAL DEFAULT 4 .bss
ELF64-NEXT: 4: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _GLOBAL_OFFSET_TABLE_
ELF64-NEXT: 5: 0000000000000000 0 TLS GLOBAL DEFAULT UND sym
@@ -42,11 +42,11 @@ NO-SYMTAB-NOT: Symbol table '.symtab'
SYMTAB: Symbol table '.symtab' contains 12 entries:
SYMTAB-NEXT: Num: Value Size Type Bind Vis Ndx Name
SYMTAB-NEXT: 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
-SYMTAB-NEXT: 1: 00000000000000e8 0 SECTION LOCAL DEFAULT 1
-SYMTAB-NEXT: 2: 0000000000000120 0 SECTION LOCAL DEFAULT 2
-SYMTAB-NEXT: 3: 0000000000000198 0 SECTION LOCAL DEFAULT 3
-SYMTAB-NEXT: 4: 00000000000001b8 0 SECTION LOCAL DEFAULT 4
-SYMTAB-NEXT: 5: 00000000002001b8 0 SECTION LOCAL DEFAULT 5
+SYMTAB-NEXT: 1: 00000000000000e8 0 SECTION LOCAL DEFAULT 1 .gnu.hash
+SYMTAB-NEXT: 2: 0000000000000120 0 SECTION LOCAL DEFAULT 2 .dynsym
+SYMTAB-NEXT: 3: 0000000000000198 0 SECTION LOCAL DEFAULT 3 .dynstr
+SYMTAB-NEXT: 4: 00000000000001b8 0 SECTION LOCAL DEFAULT 4 .eh_frame
+SYMTAB-NEXT: 5: 00000000002001b8 0 SECTION LOCAL DEFAULT 5 .dynamic
SYMTAB-NEXT: 6: 00000000002001b8 0 OBJECT LOCAL DEFAULT 5 _DYNAMIC
SYMTAB-NEXT: 7: 0000000000200268 0 OBJECT LOCAL DEFAULT 5 _GLOBAL_OFFSET_TABLE_
SYMTAB-NEXT: 8: 0000000000200268 0 NOTYPE GLOBAL DEFAULT 5 __bss_start
diff --git a/llvm/test/tools/llvm-readobj/sections-ext.test b/llvm/test/tools/llvm-readobj/sections-ext.test
index 085693829c3..e9849a67a31 100644
--- a/llvm/test/tools/llvm-readobj/sections-ext.test
+++ b/llvm/test/tools/llvm-readobj/sections-ext.test
@@ -124,7 +124,7 @@ ELF-NEXT: Relocations [
ELF-NEXT: ]
ELF-NEXT: Symbols [
ELF-NEXT: Symbol {
-ELF-NEXT: Name: (0)
+ELF-NEXT: Name: .text (0)
ELF-NEXT: Value: 0x0
ELF-NEXT: Size: 0
ELF-NEXT: Binding: Local (0x0)
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp
index 6428e9926ef..786a028035f 100644
--- a/llvm/tools/llvm-readobj/ELFDumper.cpp
+++ b/llvm/tools/llvm-readobj/ELFDumper.cpp
@@ -814,6 +814,16 @@ std::string ELFDumper<ELFT>::getFullSymbolName(const Elf_Sym *Symbol,
bool IsDynamic) const {
std::string SymbolName =
maybeDemangle(unwrapOrError(Symbol->getName(StrTable)));
+
+ if (SymbolName.empty() && Symbol->getType() == ELF::STT_SECTION) {
+ unsigned SectionIndex;
+ StringRef SectionName;
+ Elf_Sym_Range Syms =
+ unwrapOrError(ObjF->getELFFile()->symbols(DotSymtabSec));
+ getSectionNameIndex(Symbol, Syms.begin(), SectionName, SectionIndex);
+ return SectionName;
+ }
+
if (!IsDynamic)
return SymbolName;
OpenPOWER on IntegriCloud