summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-readobj
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/tools/llvm-readobj')
-rw-r--r--llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.cpp2
-rw-r--r--llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.obj.coff-i386bin0 -> 2682 bytes
-rw-r--r--llvm/test/tools/llvm-readobj/cxx-cli-aux.test42
3 files changed, 44 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.cpp b/llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.cpp
new file mode 100644
index 00000000000..6386cb2e015
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.cpp
@@ -0,0 +1,2 @@
+// cl.exe -clr -c t.cpp -Fo"cxx-cli-aux.obj.coff-i386"
+__declspec(appdomain) int PerAppDomain = 0;
diff --git a/llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.obj.coff-i386 b/llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.obj.coff-i386
new file mode 100644
index 00000000000..a88c670643a
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.obj.coff-i386
Binary files differ
diff --git a/llvm/test/tools/llvm-readobj/cxx-cli-aux.test b/llvm/test/tools/llvm-readobj/cxx-cli-aux.test
new file mode 100644
index 00000000000..eac3041b1cc
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/cxx-cli-aux.test
@@ -0,0 +1,42 @@
+Ensure that we can read the COFF auxiliary symbols 'section definition' and
+'CLR token definition' as used in C++/CLI object files. Auxiliary section
+definitions usually only follow a symbol with static storage class, but
+non-const appdomain globals (external ABS) also get one.
+
+RUN: llvm-readobj -t %p/Inputs/cxx-cli-aux.obj.coff-i386 | FileCheck %s
+
+CHECK: Symbols [
+CHECK: Symbol {
+CHECK: Name: ?PerAppDomain@@$$Q3HA
+CHECK-NEXT: Value: 4
+CHECK-NEXT: Section: (65535)
+CHECK-NEXT: BaseType: Null (0x0)
+CHECK-NEXT: ComplexType: Null (0x0)
+CHECK-NEXT: StorageClass: External (0x2)
+CHECK-NEXT: AuxSymbolCount: 1
+CHECK-NEXT: AuxSectionDef {
+CHECK-NEXT: Length: 0
+CHECK-NEXT: RelocationCount: 0
+CHECK-NEXT: LineNumberCount: 0
+CHECK-NEXT: Checksum: 0x0
+CHECK-NEXT: Number: 0
+CHECK-NEXT: Selection: NoDuplicates (0x1)
+CHECK-NEXT: Unused: (00 00 00)
+CHECK-NEXT: }
+CHECK-NEXT: }
+
+CHECK: Symbol {
+CHECK: Name: 04000001
+CHECK-NEXT: Value: 4
+CHECK-NEXT: Section: (65535)
+CHECK-NEXT: BaseType: Null (0x0)
+CHECK-NEXT: ComplexType: Null (0x0)
+CHECK-NEXT: StorageClass: CLRToken (0x6B)
+CHECK-NEXT: AuxSymbolCount: 1
+CHECK-NEXT: AuxCLRToken {
+CHECK-NEXT: AuxType: 1
+CHECK-NEXT: Reserved: 0
+CHECK-NEXT: SymbolTableIndex: 19
+CHECK-NEXT: Unused: (00 00 00 00 00 00 00 00 00 00 00 00)
+CHECK-NEXT: }
+CHECK-NEXT: }
OpenPOWER on IntegriCloud