summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/tools/obj2yaml/Inputs/shn_xindex.obin0 -> 403 bytes
-rw-r--r--llvm/test/tools/obj2yaml/special-symbol-indices.yaml46
2 files changed, 46 insertions, 0 deletions
diff --git a/llvm/test/tools/obj2yaml/Inputs/shn_xindex.o b/llvm/test/tools/obj2yaml/Inputs/shn_xindex.o
new file mode 100644
index 00000000000..73e2b60ba1e
--- /dev/null
+++ b/llvm/test/tools/obj2yaml/Inputs/shn_xindex.o
Binary files differ
diff --git a/llvm/test/tools/obj2yaml/special-symbol-indices.yaml b/llvm/test/tools/obj2yaml/special-symbol-indices.yaml
new file mode 100644
index 00000000000..127dc25a0df
--- /dev/null
+++ b/llvm/test/tools/obj2yaml/special-symbol-indices.yaml
@@ -0,0 +1,46 @@
+# RUN: yaml2obj %s > %t
+# RUN: obj2yaml %t | FileCheck %s
+
+## Test checks that we are able to handle symbols with special/reserved indices.
+
+# CHECK: Symbols:
+# CHECK-NEXT: Global:
+# CHECK-NEXT: - Name: absolute
+# CHECK-NEXT: Index: SHN_ABS
+# CHECK-NEXT: Value: 0x0000000000001234
+# CHECK-NEXT: - Name: common
+# CHECK-NEXT: Index: SHN_COMMON
+# CHECK-NEXT: - Name: valid_index
+# CHECK-NEXT: Section: .text
+# CHECK-NEXT: - Name: processor_specific_index
+# CHECK-NEXT: Index: SHN_HEXAGON_SCOMMON_1
+# CHECK-NEXT: - Name: unknown_index
+# CHECK-NEXT: Index: 0x0000FFFE
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_EXEC
+ Machine: EM_HEXAGON
+Sections:
+ - Name: .text
+ Type: SHT_PROGBITS
+Symbols:
+ Global:
+ - Name: absolute
+ Index: SHN_ABS
+ Value: 0x1234
+ - Name: common
+ Index: SHN_COMMON
+ - Name: valid_index
+ Index: 0x1
+ - Name: processor_specific_index
+ Index: SHN_HEXAGON_SCOMMON_1
+ - Name: unknown_index
+ Index: 0xfffe
+
+## shn_xindex.o contains a symbol with st_shndx == SHN_XINDEX.
+## We do not support it at this moment.
+# RUN: not obj2yaml %S/Inputs/shn_xindex.o 2>&1 | FileCheck %s --check-prefix=ERR
+# ERR: Error reading file: {{.*}}shn_xindex.o: Feature not yet implemented.
OpenPOWER on IntegriCloud