diff options
author | Kristina Brooks <kristina@nym.hush.com> | 2018-11-11 17:47:13 +0000 |
---|---|---|
committer | Kristina Brooks <kristina@nym.hush.com> | 2018-11-11 17:47:13 +0000 |
commit | 11c0888e5db5c0a972db4cc7c55defcc776225b3 (patch) | |
tree | c8a7e802e31ffc2ca52a466b5d732b5276277517 | |
parent | 89fcd8b878977c9c467cb5d6e33a3404d2996822 (diff) |
[llvm-objdump] Add symbol 'O' for object data
Improve compatibility with GNU objdump by showing `O` next to
global symbol names, instead of a blank space.
Patch by Higuoxing (Xing).
Reviewers: MaskRay
Differential Revision: https://reviews.llvm.org/D54380
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346610 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/tools/llvm-objdump/WebAssembly/symbol-table.test | 4 | ||||
-rw-r--r-- | test/tools/llvm-objdump/X86/macho-symbol-table.test | 12 | ||||
-rw-r--r-- | test/tools/llvm-objdump/common-symbol-elf.test | 2 | ||||
-rw-r--r-- | test/tools/llvm-objdump/symbol-table-elf.test | 4 | ||||
-rw-r--r-- | tools/llvm-objdump/llvm-objdump.cpp | 2 |
5 files changed, 13 insertions, 11 deletions
diff --git a/test/tools/llvm-objdump/WebAssembly/symbol-table.test b/test/tools/llvm-objdump/WebAssembly/symbol-table.test index fff4c9fe52c..b8455aaf5ae 100644 --- a/test/tools/llvm-objdump/WebAssembly/symbol-table.test +++ b/test/tools/llvm-objdump/WebAssembly/symbol-table.test @@ -2,8 +2,8 @@ RUN: llvm-objdump -t %p/../Inputs/trivial.obj.wasm | FileCheck %s CHECK: SYMBOL TABLE: CHECK-NEXT: 00000002 g F CODE main -CHECK-NEXT: 00000000 l DATA .L.str +CHECK-NEXT: 00000000 l O DATA .L.str CHECK-NEXT: 00000000 g F *UND* puts CHECK-NEXT: 00000003 l F CODE .LSomeOtherFunction_bitcast CHECK-NEXT: 00000000 g F *UND* SomeOtherFunction -CHECK-NEXT: 00000010 g DATA var +CHECK-NEXT: 00000010 g O DATA var diff --git a/test/tools/llvm-objdump/X86/macho-symbol-table.test b/test/tools/llvm-objdump/X86/macho-symbol-table.test index 19c619e73d0..663edc926a9 100644 --- a/test/tools/llvm-objdump/X86/macho-symbol-table.test +++ b/test/tools/llvm-objdump/X86/macho-symbol-table.test @@ -1,8 +1,8 @@ RUN: llvm-objdump -macho -t %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s -CHECK: SYMBOL TABLE: -CHECK: 000000000000003b l __TEXT,__cstring L_.str -CHECK: 0000000000000068 l __TEXT,__eh_frame EH_frame0 -CHECK: 0000000000000000 g F __TEXT,__text _main -CHECK: 0000000000000080 g __TEXT,__eh_frame _main.eh -CHECK: 0000000000000000 *UND* _printf +CHECK: SYMBOL TABLE: +CHECK-NEXT: 000000000000003b l O __TEXT,__cstring L_.str +CHECK-NEXT: 0000000000000068 l O __TEXT,__eh_frame EH_frame0 +CHECK-NEXT: 0000000000000000 g F __TEXT,__text _main +CHECK-NEXT: 0000000000000080 g O __TEXT,__eh_frame _main.eh +CHECK-NEXT: 0000000000000000 *UND* _printf diff --git a/test/tools/llvm-objdump/common-symbol-elf.test b/test/tools/llvm-objdump/common-symbol-elf.test index 32df05ac051..3ffea44f532 100644 --- a/test/tools/llvm-objdump/common-symbol-elf.test +++ b/test/tools/llvm-objdump/common-symbol-elf.test @@ -1,3 +1,3 @@ // RUN: llvm-objdump -t %p/Inputs/common-symbol-elf | FileCheck %s -CHECK: 00000400 g *COM* 00000008 common_symbol +CHECK: 00000400 g O *COM* 00000008 common_symbol diff --git a/test/tools/llvm-objdump/symbol-table-elf.test b/test/tools/llvm-objdump/symbol-table-elf.test index fc1eccdffb7..50ca7553587 100644 --- a/test/tools/llvm-objdump/symbol-table-elf.test +++ b/test/tools/llvm-objdump/symbol-table-elf.test @@ -5,9 +5,9 @@ # CHECK: SYMBOL TABLE: # CHECK-NEXT: 0000000000000000 *UND* 00000000 # CHECK-NEXT: 0000000000001004 l F .text 00000000 lfoo -# CHECK-NEXT: 0000000000001008 l .text 00000000 lbar +# CHECK-NEXT: 0000000000001008 l O .text 00000000 lbar # CHECK-NEXT: 0000000000001004 g F .text 00000000 foo -# CHECK-NEXT: 0000000000001008 g .text 00000000 bar +# CHECK-NEXT: 0000000000001008 g O .text 00000000 bar !ELF FileHeader: diff --git a/tools/llvm-objdump/llvm-objdump.cpp b/tools/llvm-objdump/llvm-objdump.cpp index 1f936e5b624..827d3674229 100644 --- a/tools/llvm-objdump/llvm-objdump.cpp +++ b/tools/llvm-objdump/llvm-objdump.cpp @@ -2014,6 +2014,8 @@ void llvm::PrintSymbolTable(const ObjectFile *o, StringRef ArchiveName, FileFunc = 'f'; else if (Type == SymbolRef::ST_Function) FileFunc = 'F'; + else if (Type == SymbolRef::ST_Data) + FileFunc = 'O'; const char *Fmt = o->getBytesInAddress() > 4 ? "%016" PRIx64 : "%08" PRIx64; |