diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/test/MC/ARM/arm-elf-symver.s | 2 | ||||
| -rw-r--r-- | llvm/test/MC/ELF/alias.s | 2 | ||||
| -rw-r--r-- | llvm/test/MC/ELF/many-sections-2.s | 2 | ||||
| -rw-r--r-- | llvm/test/MC/ELF/section-sym.s | 2 | ||||
| -rw-r--r-- | llvm/test/MC/ELF/symver.s | 2 | ||||
| -rw-r--r-- | llvm/test/MC/ELF/weakref.s | 2 | ||||
| -rw-r--r-- | llvm/test/Object/readobj-shared-object.test | 20 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-readobj/gnu-symbols.test | 16 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-readobj/sections-ext.test | 2 | ||||
| -rw-r--r-- | llvm/tools/llvm-readobj/ELFDumper.cpp | 10 |
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; |

