aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristina Brooks <kristina@nym.hush.com>2018-11-11 17:47:13 +0000
committerKristina Brooks <kristina@nym.hush.com>2018-11-11 17:47:13 +0000
commit11c0888e5db5c0a972db4cc7c55defcc776225b3 (patch)
treec8a7e802e31ffc2ca52a466b5d732b5276277517
parent89fcd8b878977c9c467cb5d6e33a3404d2996822 (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.test4
-rw-r--r--test/tools/llvm-objdump/X86/macho-symbol-table.test12
-rw-r--r--test/tools/llvm-objdump/common-symbol-elf.test2
-rw-r--r--test/tools/llvm-objdump/symbol-table-elf.test4
-rw-r--r--tools/llvm-objdump/llvm-objdump.cpp2
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;