summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/test/MC/ARM/coff-file.s6
-rw-r--r--llvm/test/MC/COFF/alias.s8
-rw-r--r--llvm/test/MC/COFF/basic-coff-64.s2
-rw-r--r--llvm/test/MC/COFF/basic-coff.s2
-rw-r--r--llvm/test/MC/COFF/comm.s2
-rw-r--r--llvm/test/MC/COFF/feat00.s2
-rw-r--r--llvm/test/MC/COFF/file.s6
-rw-r--r--llvm/test/MC/COFF/symbol-fragment-offset-64.s4
-rw-r--r--llvm/test/MC/COFF/symbol-fragment-offset.s4
-rw-r--r--llvm/test/MC/COFF/weak.s6
-rw-r--r--llvm/test/tools/llvm-readobj/bigobj.test2
-rw-r--r--llvm/test/tools/llvm-readobj/coff-file-sections-reading.test2
-rw-r--r--llvm/test/tools/llvm-readobj/cxx-cli-aux.test4
-rw-r--r--llvm/test/tools/llvm-readobj/symbols.test4
-rw-r--r--llvm/tools/llvm-readobj/COFFDumper.cpp22
15 files changed, 46 insertions, 30 deletions
diff --git a/llvm/test/MC/ARM/coff-file.s b/llvm/test/MC/ARM/coff-file.s
index b4b259d7fe0..d3f26f4c8f7 100644
--- a/llvm/test/MC/ARM/coff-file.s
+++ b/llvm/test/MC/ARM/coff-file.s
@@ -21,7 +21,7 @@
// CHECK-SCN: Symbols [
// CHECK-SCN: Symbol {
// CHECK-SCN: Name: .file
-// CHECK-SCN: Section: (-2)
+// CHECK-SCN: Section: IMAGE_SYM_DEBUG (-2)
// CHECK-SCN: StorageClass: File
// CHECK-SCN: AuxFileRecord {
// CHECK-SCN: FileName: null-padded.asm
@@ -29,7 +29,7 @@
// CHECK-SCN: }
// CHECK-SCN: Symbol {
// CHECK-SCN: Name: .file
-// CHECK-SCN: Section: (-2)
+// CHECK-SCN: Section: IMAGE_SYM_DEBUG (-2)
// CHECK-SCN: StorageClass: File
// CHECK-SCN: AuxFileRecord {
// CHECK-SCN: FileName: eighteen-chars.asm
@@ -37,7 +37,7 @@
// CHECK-SCN: }
// CHECK-SCN: Symbol {
// CHECK-SCN: Name: .file
-// CHECK-SCN: Section: (-2)
+// CHECK-SCN: Section: IMAGE_SYM_DEBUG (-2)
// CHECK-SCN: StorageClass: File
// CHECK-SCN: AuxFileRecord {
// CHECK-SCN: FileName: multiple-auxiliary-entries.asm
diff --git a/llvm/test/MC/COFF/alias.s b/llvm/test/MC/COFF/alias.s
index 7dfc4c7f851..2293d43c575 100644
--- a/llvm/test/MC/COFF/alias.s
+++ b/llvm/test/MC/COFF/alias.s
@@ -48,7 +48,7 @@ weak_aliased_to_external = external2
// CHECK-NEXT: Symbol {
// CHECK: Name: global_aliased_to_external
// CHECK-NEXT: Value: 0
-// CHECK-NEXT: Section: (0)
+// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK-NEXT: BaseType: Null (0x0)
// CHECK-NEXT: ComplexType: Null (0x0)
// CHECK-NEXT: StorageClass: External (0x2)
@@ -57,7 +57,7 @@ weak_aliased_to_external = external2
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: external1
// CHECK-NEXT: Value: 0
-// CHECK-NEXT: Section: (0)
+// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK-NEXT: BaseType: Null (0x0)
// CHECK-NEXT: ComplexType: Null (0x0)
// CHECK-NEXT: StorageClass: External (0x2)
@@ -84,7 +84,7 @@ weak_aliased_to_external = external2
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: weak_aliased_to_external
// CHECK-NEXT: Value: 0
-// CHECK-NEXT: Section: (0)
+// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK-NEXT: BaseType: Null (0x0)
// CHECK-NEXT: ComplexType: Null (0x0)
// CHECK-NEXT: StorageClass: WeakExternal (0x69)
@@ -97,7 +97,7 @@ weak_aliased_to_external = external2
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: external2
// CHECK-NEXT: Value: 0
-// CHECK-NEXT: Section: (0)
+// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK-NEXT: BaseType: Null (0x0)
// CHECK-NEXT: ComplexType: Null (0x0)
// CHECK-NEXT: StorageClass: External (0x2)
diff --git a/llvm/test/MC/COFF/basic-coff-64.s b/llvm/test/MC/COFF/basic-coff-64.s
index 3f7a2680585..62e4eb92f85 100644
--- a/llvm/test/MC/COFF/basic-coff-64.s
+++ b/llvm/test/MC/COFF/basic-coff-64.s
@@ -127,7 +127,7 @@ _main: # @main
// CHECK: Symbol {
// CHECK: Name: _printf
// CHECK: Value: 0
-// CHECK: Section: (0)
+// CHECK: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK: BaseType: Null
// CHECK: ComplexType: Null
// CHECK: StorageClass: External
diff --git a/llvm/test/MC/COFF/basic-coff.s b/llvm/test/MC/COFF/basic-coff.s
index 3a16df45ece..549825aacea 100644
--- a/llvm/test/MC/COFF/basic-coff.s
+++ b/llvm/test/MC/COFF/basic-coff.s
@@ -127,7 +127,7 @@ L_.str: # @.str
// CHECK: Symbol {
// CHECK: Name: _printf
// CHECK: Value: 0
-// CHECK: Section: (0)
+// CHECK: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK: BaseType: Null
// CHECK: ComplexType: Null
// CHECK: StorageClass: External
diff --git a/llvm/test/MC/COFF/comm.s b/llvm/test/MC/COFF/comm.s
index 37db75f9cc4..28d9726fc5e 100644
--- a/llvm/test/MC/COFF/comm.s
+++ b/llvm/test/MC/COFF/comm.s
@@ -17,7 +17,7 @@
// CHECK: Symbol {
// CHECK: Name: _b
// CHECK-NEXT: Value: 4
-// CHECK-NEXT: Section: (0)
+// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK-NEXT: BaseType: Null
// CHECK-NEXT: ComplexType: Null
// CHECK-NEXT: StorageClass: External
diff --git a/llvm/test/MC/COFF/feat00.s b/llvm/test/MC/COFF/feat00.s
index d08f407cef5..f671ebe7d92 100644
--- a/llvm/test/MC/COFF/feat00.s
+++ b/llvm/test/MC/COFF/feat00.s
@@ -6,7 +6,7 @@
// CHECK: Symbol {
// CHECK: Name: @feat.00
// CHECK: Value: 123
-// CHECK: Section: (-1)
+// CHECK: Section: IMAGE_SYM_ABSOLUTE (-1)
// CHECK: BaseType: Null (0x0)
// CHECK: ComplexType: Null (0x0)
// CHECK: StorageClass: External (0x2)
diff --git a/llvm/test/MC/COFF/file.s b/llvm/test/MC/COFF/file.s
index 1fca5a15e9d..a18a1f476ac 100644
--- a/llvm/test/MC/COFF/file.s
+++ b/llvm/test/MC/COFF/file.s
@@ -21,7 +21,7 @@
// CHECK-SCN: Symbols [
// CHECK-SCN: Symbol {
// CHECK-SCN: Name: .file
-// CHECK-SCN: Section: (-2)
+// CHECK-SCN: Section: IMAGE_SYM_DEBUG (-2)
// CHECK-SCN: StorageClass: File
// CHECK-SCN: AuxFileRecord {
// CHECK-SCN: FileName: null-padded.asm
@@ -29,7 +29,7 @@
// CHECK-SCN: }
// CHECK-SCN: Symbol {
// CHECK-SCN: Name: .file
-// CHECK-SCN: Section: (-2)
+// CHECK-SCN: Section: IMAGE_SYM_DEBUG (-2)
// CHECK-SCN: StorageClass: File
// CHECK-SCN: AuxFileRecord {
// CHECK-SCN: FileName: eighteen-chars.asm
@@ -37,7 +37,7 @@
// CHECK-SCN: }
// CHECK-SCN: Symbol {
// CHECK-SCN: Name: .file
-// CHECK-SCN: Section: (-2)
+// CHECK-SCN: Section: IMAGE_SYM_DEBUG (-2)
// CHECK-SCN: StorageClass: File
// CHECK-SCN: AuxFileRecord {
// CHECK-SCN: FileName: multiple-auxiliary-entries.asm
diff --git a/llvm/test/MC/COFF/symbol-fragment-offset-64.s b/llvm/test/MC/COFF/symbol-fragment-offset-64.s
index cbcc431bf1f..05b46bbb7e7 100644
--- a/llvm/test/MC/COFF/symbol-fragment-offset-64.s
+++ b/llvm/test/MC/COFF/symbol-fragment-offset-64.s
@@ -148,7 +148,7 @@ _main: # @main
// CHECK: Symbol {
// CHECK: Name: _printf
// CHECK: Value: 0
-// CHECK: Section: (0)
+// CHECK: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK: BaseType: Null
// CHECK: ComplexType: Null
// CHECK: StorageClass: External
@@ -157,7 +157,7 @@ _main: # @main
// CHECK: Symbol {
// CHECK: Name: _puts
// CHECK: Value: 0
-// CHECK: Section: (0)
+// CHECK: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK: BaseType: Null
// CHECK: ComplexType: Null
// CHECK: StorageClass: External
diff --git a/llvm/test/MC/COFF/symbol-fragment-offset.s b/llvm/test/MC/COFF/symbol-fragment-offset.s
index a5a3f9f07c2..cc5040a99cc 100644
--- a/llvm/test/MC/COFF/symbol-fragment-offset.s
+++ b/llvm/test/MC/COFF/symbol-fragment-offset.s
@@ -148,7 +148,7 @@ L_.str2:
// CHECK: Symbol {
// CHECK: Name: _printf
// CHECK: Value: 0
-// CHECK: Section: (0)
+// CHECK: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK: BaseType: Null
// CHECK: ComplexType: Null
// CHECK: StorageClass: External
@@ -157,7 +157,7 @@ L_.str2:
// CHECK: Symbol {
// CHECK: Name: _puts
// CHECK: Value: 0
-// CHECK: Section: (0)
+// CHECK: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK: BaseType: Null
// CHECK: ComplexType: Null
// CHECK: StorageClass: External
diff --git a/llvm/test/MC/COFF/weak.s b/llvm/test/MC/COFF/weak.s
index b729cbdf582..6086749d80d 100644
--- a/llvm/test/MC/COFF/weak.s
+++ b/llvm/test/MC/COFF/weak.s
@@ -37,7 +37,7 @@ LBB0_2: # %return
// CHECK: Symbol {
// CHECK: Name: _test_weak
// CHECK-NEXT: Value: 0
-// CHECK-NEXT: Section: (0)
+// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK-NEXT: BaseType: Null
// CHECK-NEXT: ComplexType: Null
// CHECK-NEXT: StorageClass: WeakExternal
@@ -51,7 +51,7 @@ LBB0_2: # %return
// CHECK: Symbol {
// CHECK: Name: .weak._test_weak.default
// CHECK-NEXT: Value: 0
-// CHECK-NEXT: Section: (-1)
+// CHECK-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1)
// CHECK-NEXT: BaseType: Null
// CHECK-NEXT: ComplexType: Null
// CHECK-NEXT: StorageClass: External
@@ -61,7 +61,7 @@ LBB0_2: # %return
// CHECK: Symbol {
// CHECK: Name: _test_weak_alias
// CHECK-NEXT: Value: 0
-// CHECK-NEXT: Section: (0)
+// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK-NEXT: BaseType: Null
// CHECK-NEXT: ComplexType: Null
// CHECK-NEXT: StorageClass: WeakExternal
diff --git a/llvm/test/tools/llvm-readobj/bigobj.test b/llvm/test/tools/llvm-readobj/bigobj.test
index 361a9e44fe6..10972144315 100644
--- a/llvm/test/tools/llvm-readobj/bigobj.test
+++ b/llvm/test/tools/llvm-readobj/bigobj.test
@@ -76,7 +76,7 @@ CHECK-NEXT: Symbols [
CHECK-NEXT: Symbol {
CHECK-NEXT: Name: .file
CHECK-NEXT: Value: 0
-CHECK-NEXT: Section: (-2)
+CHECK-NEXT: Section: IMAGE_SYM_DEBUG (-2)
CHECK-NEXT: BaseType: Null (0x0)
CHECK-NEXT: ComplexType: Null (0x0)
CHECK-NEXT: StorageClass: File (0x67)
diff --git a/llvm/test/tools/llvm-readobj/coff-file-sections-reading.test b/llvm/test/tools/llvm-readobj/coff-file-sections-reading.test
index 846247fd9cf..c2f02d47de4 100644
--- a/llvm/test/tools/llvm-readobj/coff-file-sections-reading.test
+++ b/llvm/test/tools/llvm-readobj/coff-file-sections-reading.test
@@ -4,7 +4,7 @@ CHECK: Symbols [
CHECK: Symbol {
CHECK: Name: .file
CHECK: Value: 0
-CHECK: Section: (-2)
+CHECK: Section: IMAGE_SYM_DEBUG (-2)
CHECK: BaseType: Null (0x0)
CHECK: ComplexType: Null (0x0)
CHECK: StorageClass: File (0x67)
diff --git a/llvm/test/tools/llvm-readobj/cxx-cli-aux.test b/llvm/test/tools/llvm-readobj/cxx-cli-aux.test
index cac9e71c252..0b687793547 100644
--- a/llvm/test/tools/llvm-readobj/cxx-cli-aux.test
+++ b/llvm/test/tools/llvm-readobj/cxx-cli-aux.test
@@ -9,7 +9,7 @@ CHECK: Symbols [
CHECK: Symbol {
CHECK: Name: ?PerAppDomain@@$$Q3HA
CHECK-NEXT: Value: 4
-CHECK-NEXT: Section: (-1)
+CHECK-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1)
CHECK-NEXT: BaseType: Null (0x0)
CHECK-NEXT: ComplexType: Null (0x0)
CHECK-NEXT: StorageClass: External (0x2)
@@ -27,7 +27,7 @@ CHECK-NEXT: }
CHECK: Symbol {
CHECK: Name: 04000001
CHECK-NEXT: Value: 4
-CHECK-NEXT: Section: (-1)
+CHECK-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1)
CHECK-NEXT: BaseType: Null (0x0)
CHECK-NEXT: ComplexType: Null (0x0)
CHECK-NEXT: StorageClass: CLRToken (0x6B)
diff --git a/llvm/test/tools/llvm-readobj/symbols.test b/llvm/test/tools/llvm-readobj/symbols.test
index 3876138f9d2..71955e0d823 100644
--- a/llvm/test/tools/llvm-readobj/symbols.test
+++ b/llvm/test/tools/llvm-readobj/symbols.test
@@ -7,7 +7,7 @@ COFF: Symbols [
COFF-NEXT: Symbol {
COFF-NEXT: Name: @comp.id
COFF-NEXT: Value: 14766605
-COFF-NEXT: Section: (-1)
+COFF-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1)
COFF-NEXT: BaseType: Null (0x0)
COFF-NEXT: ComplexType: Null (0x0)
COFF-NEXT: StorageClass: Static (0x3)
@@ -16,7 +16,7 @@ COFF-NEXT: }
COFF-NEXT: Symbol {
COFF-NEXT: Name: @feat.00
COFF-NEXT: Value: 2147484049
-COFF-NEXT: Section: (-1)
+COFF-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1)
COFF-NEXT: BaseType: Null (0x0)
COFF-NEXT: ComplexType: Null (0x0)
COFF-NEXT: StorageClass: Static (0x3)
diff --git a/llvm/tools/llvm-readobj/COFFDumper.cpp b/llvm/tools/llvm-readobj/COFFDumper.cpp
index c08e20e8ed4..99a374d5a6a 100644
--- a/llvm/tools/llvm-readobj/COFFDumper.cpp
+++ b/llvm/tools/llvm-readobj/COFFDumper.cpp
@@ -715,6 +715,24 @@ void COFFDumper::printSymbols() {
void COFFDumper::printDynamicSymbols() { ListScope Group(W, "DynamicSymbols"); }
+static StringRef getSectionName(const llvm::object::COFFObjectFile *Obj,
+ COFFSymbolRef Symbol,
+ const coff_section *Section) {
+ if (Section) {
+ StringRef SectionName;
+ Obj->getSectionName(Section, SectionName);
+ return SectionName;
+ }
+ int32_t SectionNumber = Symbol.getSectionNumber();
+ if (SectionNumber == llvm::COFF::IMAGE_SYM_DEBUG)
+ return "IMAGE_SYM_DEBUG";
+ if (SectionNumber == llvm::COFF::IMAGE_SYM_ABSOLUTE)
+ return "IMAGE_SYM_ABSOLUTE";
+ if (SectionNumber == llvm::COFF::IMAGE_SYM_UNDEFINED)
+ return "IMAGE_SYM_UNDEFINED";
+ return "";
+}
+
void COFFDumper::printSymbol(const SymbolRef &Sym) {
DictScope D(W, "Symbol");
@@ -730,9 +748,7 @@ void COFFDumper::printSymbol(const SymbolRef &Sym) {
if (Obj->getSymbolName(Symbol, SymbolName))
SymbolName = "";
- StringRef SectionName = "";
- if (Section)
- Obj->getSectionName(Section, SectionName);
+ StringRef SectionName = getSectionName(Obj, Symbol, Section);
W.printString("Name", SymbolName);
W.printNumber("Value", Symbol.getValue());
OpenPOWER on IntegriCloud