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
commit0674f9d7394ccc348512a6da46ebbb93094e59fd (patch)
treec67c44d820fff924e979f84e190df7b5523daf90
parent622b71d40af9d9552a056eda960ea015ec324b0d (diff)
downloadllvm-0674f9d7394ccc348512a6da46ebbb93094e59fd.zip
llvm-0674f9d7394ccc348512a6da46ebbb93094e59fd.tar.gz
llvm-0674f9d7394ccc348512a6da46ebbb93094e59fd.tar.bz2
[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 llvm-svn: 346610
-rw-r--r--llvm/test/tools/llvm-objdump/WebAssembly/symbol-table.test4
-rw-r--r--llvm/test/tools/llvm-objdump/X86/macho-symbol-table.test12
-rw-r--r--llvm/test/tools/llvm-objdump/common-symbol-elf.test2
-rw-r--r--llvm/test/tools/llvm-objdump/symbol-table-elf.test4
-rw-r--r--llvm/tools/llvm-objdump/llvm-objdump.cpp2
5 files changed, 13 insertions, 11 deletions
diff --git a/llvm/test/tools/llvm-objdump/WebAssembly/symbol-table.test b/llvm/test/tools/llvm-objdump/WebAssembly/symbol-table.test
index fff4c9f..b8455aa 100644
--- a/llvm/test/tools/llvm-objdump/WebAssembly/symbol-table.test
+++ b/llvm/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/llvm/test/tools/llvm-objdump/X86/macho-symbol-table.test b/llvm/test/tools/llvm-objdump/X86/macho-symbol-table.test
index 19c619e..663edc92 100644
--- a/llvm/test/tools/llvm-objdump/X86/macho-symbol-table.test
+++ b/llvm/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/llvm/test/tools/llvm-objdump/common-symbol-elf.test b/llvm/test/tools/llvm-objdump/common-symbol-elf.test
index 32df05a..3ffea44 100644
--- a/llvm/test/tools/llvm-objdump/common-symbol-elf.test
+++ b/llvm/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/llvm/test/tools/llvm-objdump/symbol-table-elf.test b/llvm/test/tools/llvm-objdump/symbol-table-elf.test
index fc1eccd..50ca755 100644
--- a/llvm/test/tools/llvm-objdump/symbol-table-elf.test
+++ b/llvm/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/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp
index 1f936e5..827d367 100644
--- a/llvm/tools/llvm-objdump/llvm-objdump.cpp
+++ b/llvm/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;