summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/MC/ARM/arm-elf-symver.s4
-rw-r--r--test/MC/ELF/abs.s2
-rw-r--r--test/MC/ELF/alias-reloc.s2
-rw-r--r--test/MC/ELF/alias.s4
-rw-r--r--test/MC/ELF/comdat.s2
-rw-r--r--test/MC/ELF/common.s6
-rw-r--r--test/MC/ELF/file-double.s4
-rw-r--r--test/MC/ELF/file.s2
-rw-r--r--test/MC/ELF/pic-diff.s2
-rw-r--r--test/MC/ELF/pr9292.s4
-rw-r--r--test/MC/ELF/set.s4
-rw-r--r--test/MC/ELF/symref.s4
-rw-r--r--test/MC/ELF/tls-i386.s28
-rw-r--r--test/MC/ELF/tls.s12
-rw-r--r--test/MC/ELF/type-propagate.s4
-rw-r--r--test/MC/ELF/undef.s2
-rw-r--r--test/MC/ELF/weak.s2
-rw-r--r--test/MC/ELF/weakref-reloc.s6
-rw-r--r--test/MC/ELF/weakref.s10
-rw-r--r--test/Object/readobj-elf-versioning.test4
-rw-r--r--test/Object/readobj-shared-object.test18
-rw-r--r--test/Object/yaml2obj-elf-symbol-basic.yaml2
-rw-r--r--test/tools/llvm-readobj/symbols.test4
-rw-r--r--tools/llvm-readobj/ELFDumper.cpp24
24 files changed, 88 insertions, 68 deletions
diff --git a/test/MC/ARM/arm-elf-symver.s b/test/MC/ARM/arm-elf-symver.s
index 0d141b7fd8a..f7c0288a88f 100644
--- a/test/MC/ARM/arm-elf-symver.s
+++ b/test/MC/ARM/arm-elf-symver.s
@@ -138,7 +138,7 @@ global1:
@ CHECK-NEXT: Binding: Global (0x1)
@ CHECK-NEXT: Type: None (0x0)
@ CHECK-NEXT: Other: 0
-@ CHECK-NEXT: Section: (0x0)
+@ CHECK-NEXT: Section: Undefined (0x0)
@ CHECK-NEXT: }
@ CHECK-NEXT: Symbol {
@ CHECK-NEXT: Name: bar6@zed (66)
@@ -147,6 +147,6 @@ global1:
@ CHECK-NEXT: Binding: Global (0x1)
@ CHECK-NEXT: Type: None (0x0)
@ CHECK-NEXT: Other: 0
-@ CHECK-NEXT: Section: (0x0)
+@ CHECK-NEXT: Section: Undefined (0x0)
@ CHECK-NEXT: }
@ CHECK-NEXT: ]
diff --git a/test/MC/ELF/abs.s b/test/MC/ELF/abs.s
index 1836f400597..4adf1cb56af 100644
--- a/test/MC/ELF/abs.s
+++ b/test/MC/ELF/abs.s
@@ -13,5 +13,5 @@
// CHECK-NEXT: Binding: Local
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0xFFF1)
+// CHECK-NEXT: Section: Absolute (0xFFF1)
// CHECK-NEXT: }
diff --git a/test/MC/ELF/alias-reloc.s b/test/MC/ELF/alias-reloc.s
index 0ee73e9ca24..74930c63aeb 100644
--- a/test/MC/ELF/alias-reloc.s
+++ b/test/MC/ELF/alias-reloc.s
@@ -32,7 +32,7 @@ foo2:
// CHECK-NEXT: Binding: Local (0x0)
// CHECK-NEXT: Type: None (0x0)
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: bar
diff --git a/test/MC/ELF/alias.s b/test/MC/ELF/alias.s
index c532f7c02ca..2e65ace6ba1 100644
--- a/test/MC/ELF/alias.s
+++ b/test/MC/ELF/alias.s
@@ -28,7 +28,7 @@ bar5 = bar4
// CHECK-NEXT: Binding: Local (0x0)
// CHECK-NEXT: Type: None (0x0)
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: bar
@@ -109,6 +109,6 @@ bar5 = bar4
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: ]
diff --git a/test/MC/ELF/comdat.s b/test/MC/ELF/comdat.s
index 3e4a001f05a..05d08e14816 100644
--- a/test/MC/ELF/comdat.s
+++ b/test/MC/ELF/comdat.s
@@ -74,7 +74,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
diff --git a/test/MC/ELF/common.s b/test/MC/ELF/common.s
index 4fc2154d850..9cff927ba55 100644
--- a/test/MC/ELF/common.s
+++ b/test/MC/ELF/common.s
@@ -60,7 +60,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: Object
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0xFFF2)
+// CHECK-NEXT: Section: Common (0xFFF2)
// CHECK-NEXT: }
@@ -82,7 +82,7 @@ foo:
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: Object
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0xFFF2)
+// CHECK-NEXT: Section: Common (0xFFF2)
// CHECK-NEXT: }
@@ -95,5 +95,5 @@ foo:
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: Object
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0xFFF2)
+// CHECK-NEXT: Section: Common (0xFFF2)
// CHECK-NEXT: }
diff --git a/test/MC/ELF/file-double.s b/test/MC/ELF/file-double.s
index b0731e67ed0..f9b91edd6fe 100644
--- a/test/MC/ELF/file-double.s
+++ b/test/MC/ELF/file-double.s
@@ -17,7 +17,7 @@ bar.c:
// CHECK-NEXT: Binding: Local
// CHECK-NEXT: Type: File
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0xFFF1)
+// CHECK-NEXT: Section: Absolute (0xFFF1)
// CHECK-NEXT: }
// CHECK: Name: bar.c (7)
// CHECK-NEXT: Value: 0x0
@@ -25,7 +25,7 @@ bar.c:
// CHECK-NEXT: Binding: Local
// CHECK-NEXT: Type: File
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0xFFF1)
+// CHECK-NEXT: Section: Absolute (0xFFF1)
// CHECK-NEXT: }
// CHECK: Symbol {
// CHECK: Name: bar.c (7)
diff --git a/test/MC/ELF/file.s b/test/MC/ELF/file.s
index 7e287f7e3fa..6b6cb44e2b2 100644
--- a/test/MC/ELF/file.s
+++ b/test/MC/ELF/file.s
@@ -12,7 +12,7 @@ foa:
// CHECK-NEXT: Binding: Local
// CHECK-NEXT: Type: File
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0xFFF1)
+// CHECK-NEXT: Section: Absolute (0xFFF1)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foa (5)
diff --git a/test/MC/ELF/pic-diff.s b/test/MC/ELF/pic-diff.s
index cffa0dd368e..30c92780f13 100644
--- a/test/MC/ELF/pic-diff.s
+++ b/test/MC/ELF/pic-diff.s
@@ -13,7 +13,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
.zero 4
diff --git a/test/MC/ELF/pr9292.s b/test/MC/ELF/pr9292.s
index a6e78dc992a..a433650bc69 100644
--- a/test/MC/ELF/pr9292.s
+++ b/test/MC/ELF/pr9292.s
@@ -14,7 +14,7 @@ mov %eax,bar
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo (1)
@@ -23,5 +23,5 @@ mov %eax,bar
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
diff --git a/test/MC/ELF/set.s b/test/MC/ELF/set.s
index f6965a583a9..80e7e5380a7 100644
--- a/test/MC/ELF/set.s
+++ b/test/MC/ELF/set.s
@@ -11,7 +11,7 @@
// CHECK-NEXT: Binding: Local
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0xFFF1)
+// CHECK-NEXT: Section: Absolute (0xFFF1)
// CHECK-NEXT: }
// Test that we accept .set of a symbol after it has been used in a statement.
@@ -32,5 +32,5 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
diff --git a/test/MC/ELF/symref.s b/test/MC/ELF/symref.s
index c8015b96a31..737683bd407 100644
--- a/test/MC/ELF/symref.s
+++ b/test/MC/ELF/symref.s
@@ -128,7 +128,7 @@ global1:
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: bar6@zed (57)
@@ -137,6 +137,6 @@ global1:
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: ]
diff --git a/test/MC/ELF/tls-i386.s b/test/MC/ELF/tls-i386.s
index 267046ef5bf..88e96ff6673 100644
--- a/test/MC/ELF/tls-i386.s
+++ b/test/MC/ELF/tls-i386.s
@@ -24,7 +24,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo2 (6)
@@ -33,7 +33,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo3 (11)
@@ -42,7 +42,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo4 (16)
@@ -51,7 +51,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo5 (21)
@@ -60,7 +60,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo6 (26)
@@ -69,7 +69,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo7 (31)
@@ -78,7 +78,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo8 (36)
@@ -87,7 +87,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo9 (41)
@@ -96,7 +96,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: fooA (46)
@@ -105,7 +105,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: fooB (51)
@@ -114,7 +114,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: fooC (56)
@@ -123,7 +123,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: fooD (61)
@@ -132,7 +132,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: fooE (66)
@@ -141,5 +141,5 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
diff --git a/test/MC/ELF/tls.s b/test/MC/ELF/tls.s
index c71e3962bb4..6d4b703ace4 100644
--- a/test/MC/ELF/tls.s
+++ b/test/MC/ELF/tls.s
@@ -29,7 +29,7 @@ foobar:
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo2 (6)
@@ -38,7 +38,7 @@ foobar:
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo3 (11)
@@ -47,7 +47,7 @@ foobar:
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo4 (16)
@@ -56,7 +56,7 @@ foobar:
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo5 (21)
@@ -65,7 +65,7 @@ foobar:
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo6 (26)
@@ -74,5 +74,5 @@ foobar:
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: TLS
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
diff --git a/test/MC/ELF/type-propagate.s b/test/MC/ELF/type-propagate.s
index feb9507a441..15d05af7f2f 100644
--- a/test/MC/ELF/type-propagate.s
+++ b/test/MC/ELF/type-propagate.s
@@ -84,7 +84,7 @@ sym10:
// CHECK-NEXT: Binding: Local (0x0)
// CHECK-NEXT: Type: None (0x0)
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0xFFF1)
+// CHECK-NEXT: Section: Absolute (0xFFF1)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: sym07
@@ -93,7 +93,7 @@ sym10:
// CHECK-NEXT: Binding: Local (0x0)
// CHECK-NEXT: Type: None (0x0)
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0xFFF1)
+// CHECK-NEXT: Section: Absolute (0xFFF1)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: sym08
diff --git a/test/MC/ELF/undef.s b/test/MC/ELF/undef.s
index 0d89fb12936..7c2a876056d 100644
--- a/test/MC/ELF/undef.s
+++ b/test/MC/ELF/undef.s
@@ -34,6 +34,6 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: Object
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: ]
diff --git a/test/MC/ELF/weak.s b/test/MC/ELF/weak.s
index 943a46d03b3..99d427333d1 100644
--- a/test/MC/ELF/weak.s
+++ b/test/MC/ELF/weak.s
@@ -25,6 +25,6 @@ bar:
// CHECK-NEXT: Binding: Weak
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: ]
diff --git a/test/MC/ELF/weakref-reloc.s b/test/MC/ELF/weakref-reloc.s
index 48bda8748fd..582c6946c60 100644
--- a/test/MC/ELF/weakref-reloc.s
+++ b/test/MC/ELF/weakref-reloc.s
@@ -22,7 +22,7 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: foo (1)
@@ -31,7 +31,7 @@
// CHECK-NEXT: Binding: Weak
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: zed (5)
@@ -40,5 +40,5 @@
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
diff --git a/test/MC/ELF/weakref.s b/test/MC/ELF/weakref.s
index 6c2d33397c8..cf2228d8f76 100644
--- a/test/MC/ELF/weakref.s
+++ b/test/MC/ELF/weakref.s
@@ -77,7 +77,7 @@ bar15:
// CHECK-NEXT: Binding: Local (0x0)
// CHECK-NEXT: Type: None (0x0)
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: bar6 (21)
@@ -203,7 +203,7 @@ bar15:
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: bar3 (6)
@@ -212,7 +212,7 @@ bar15:
// CHECK-NEXT: Binding: Weak
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: bar4 (11)
@@ -221,7 +221,7 @@ bar15:
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: bar5 (16)
@@ -230,6 +230,6 @@ bar15:
// CHECK-NEXT: Binding: Global
// CHECK-NEXT: Type: None
// CHECK-NEXT: Other: 0
-// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: Section: Undefined (0x0)
// CHECK-NEXT: }
// CHECK-NEXT: ]
diff --git a/test/Object/readobj-elf-versioning.test b/test/Object/readobj-elf-versioning.test
index 1f09ef32a11..40852877457 100644
--- a/test/Object/readobj-elf-versioning.test
+++ b/test/Object/readobj-elf-versioning.test
@@ -33,7 +33,7 @@ ELF32: Symbol {
ELF32: Name: puts@GLIBC_2.0
ELF32: Binding: Global
ELF32: Type: Function
-ELF32: Section: (0x0)
+ELF32: Section: Undefined (0x0)
ELF32: }
ELF32: ]
ELF64: DynamicSymbols [
@@ -41,6 +41,6 @@ ELF64: Symbol {
ELF64: Name: puts@GLIBC_2.2.5
ELF64: Binding: Global
ELF64: Type: Function
-ELF64: Section: (0x0)
+ELF64: Section: Undefined (0x0)
ELF64: }
ELF64: ]
diff --git a/test/Object/readobj-shared-object.test b/test/Object/readobj-shared-object.test
index 72dbd32ea9d..516d4c699e4 100644
--- a/test/Object/readobj-shared-object.test
+++ b/test/Object/readobj-shared-object.test
@@ -191,7 +191,7 @@ ELF: Symbol {
ELF: Name: shared.ll
ELF: Binding: Local
ELF: Type: File
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: local_func
@@ -203,13 +203,13 @@ ELF: Symbol {
ELF: Name: _GLOBAL_OFFSET_TABLE_
ELF: Binding: Local
ELF: Type: Object
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: _DYNAMIC
ELF: Binding: Local
ELF: Type: Object
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: common_sym
@@ -233,13 +233,13 @@ ELF: Symbol {
ELF: Name: __bss_start
ELF: Binding: Global
ELF: Type: None
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: _end
ELF: Binding: Global
ELF: Type: None
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: global_func
@@ -251,7 +251,7 @@ ELF: Symbol {
ELF: Name: _edata
ELF: Binding: Global
ELF: Type: None
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: ]
@@ -278,13 +278,13 @@ ELF: Symbol {
ELF: Name: __bss_start
ELF: Binding: Global
ELF: Type: None
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: _end
ELF: Binding: Global
ELF: Type: None
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: Symbol {
ELF: Name: global_func
@@ -296,7 +296,7 @@ ELF: Symbol {
ELF: Name: _edata
ELF: Binding: Global
ELF: Type: None
-ELF: Section: (0xFFF1)
+ELF: Section: Absolute (0xFFF1)
ELF: }
ELF: ]
diff --git a/test/Object/yaml2obj-elf-symbol-basic.yaml b/test/Object/yaml2obj-elf-symbol-basic.yaml
index 3fb9b17655f..6d49ddd1c42 100644
--- a/test/Object/yaml2obj-elf-symbol-basic.yaml
+++ b/test/Object/yaml2obj-elf-symbol-basic.yaml
@@ -37,4 +37,4 @@ Symbols:
# CHECK: Section: .text
# CHECK: Symbol {
# CHECK: Name: undefined_symbol
-# CHECK: Section: (0x0)
+# CHECK: Section: Undefined (0x0)
diff --git a/test/tools/llvm-readobj/symbols.test b/test/tools/llvm-readobj/symbols.test
index e427bdc8d97..26830ac46a8 100644
--- a/test/tools/llvm-readobj/symbols.test
+++ b/test/tools/llvm-readobj/symbols.test
@@ -49,7 +49,7 @@ ELF-NEXT: Size: 0
ELF-NEXT: Binding: Local (0x0)
ELF-NEXT: Type: None (0x0)
ELF-NEXT: Other: 0
-ELF-NEXT: Section: (0x0)
+ELF-NEXT: Section: Undefined (0x0)
ELF-NEXT: }
ELF-NEXT: Symbol {
ELF-NEXT: Name: trivial.ll (1)
@@ -58,7 +58,7 @@ ELF-NEXT: Size: 0
ELF-NEXT: Binding: Local (0x0)
ELF-NEXT: Type: File (0x4)
ELF-NEXT: Other: 0
-ELF-NEXT: Section: (0xFFF1)
+ELF-NEXT: Section: Absolute (0xFFF1)
ELF-NEXT: }
ELF-NEXT: Symbol {
ELF-NEXT: Name: .L.str (39)
diff --git a/tools/llvm-readobj/ELFDumper.cpp b/tools/llvm-readobj/ELFDumper.cpp
index e4532a5476e..94b76d00e79 100644
--- a/tools/llvm-readobj/ELFDumper.cpp
+++ b/tools/llvm-readobj/ELFDumper.cpp
@@ -625,8 +625,28 @@ void ELFDumper<ELFT>::printDynamicSymbols() {
template <class ELFT>
void ELFDumper<ELFT>::printSymbol(typename ELFO::Elf_Sym_Iter Symbol) {
StringRef SymbolName = errorOrDefault(Obj->getSymbolName(Symbol));
- const Elf_Shdr *Sec = Obj->getSection(&*Symbol);
- StringRef SectionName = Sec ? errorOrDefault(Obj->getSectionName(Sec)) : "";
+
+ unsigned SectionIndex = Obj->getSymbolTableIndex(&*Symbol);
+ StringRef SectionName;
+ if (SectionIndex == SHN_UNDEF) {
+ SectionName = "Undefined";
+ } else if (SectionIndex >= SHN_LOPROC && SectionIndex <= SHN_HIPROC) {
+ SectionName = "Processor Specific";
+ } else if (SectionIndex >= SHN_LOOS && SectionIndex <= SHN_HIOS) {
+ SectionName = "Operating System Specific";
+ } else if (SectionIndex > SHN_HIOS && SectionIndex < SHN_ABS) {
+ SectionName = "Reserved";
+ } else if (SectionIndex == SHN_ABS) {
+ SectionName = "Absolute";
+ } else if (SectionIndex == SHN_COMMON) {
+ SectionName = "Common";
+ } else {
+ assert(SectionIndex != SHN_XINDEX &&
+ "getSymbolTableIndex should handle this");
+ const Elf_Shdr *Sec = Obj->getSection(SectionIndex);
+ SectionName = errorOrDefault(Obj->getSectionName(Sec));
+ }
+
std::string FullSymbolName(SymbolName);
if (Symbol.isDynamic()) {
bool IsDefault;