summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/tools/llvm-readobj/Inputs/codeview-cycle.objbin0 -> 1034 bytes
-rw-r--r--llvm/test/tools/llvm-readobj/Inputs/codeview-unsorted.objbin0 -> 1058 bytes
-rw-r--r--llvm/test/tools/llvm-readobj/codeview-merging-cycle.test19
-rw-r--r--llvm/test/tools/llvm-readobj/codeview-merging-unsorted.test40
4 files changed, 59 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/Inputs/codeview-cycle.obj b/llvm/test/tools/llvm-readobj/Inputs/codeview-cycle.obj
new file mode 100644
index 00000000000..85c2d0e55fe
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/Inputs/codeview-cycle.obj
Binary files differ
diff --git a/llvm/test/tools/llvm-readobj/Inputs/codeview-unsorted.obj b/llvm/test/tools/llvm-readobj/Inputs/codeview-unsorted.obj
new file mode 100644
index 00000000000..08a376de3b9
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/Inputs/codeview-unsorted.obj
Binary files differ
diff --git a/llvm/test/tools/llvm-readobj/codeview-merging-cycle.test b/llvm/test/tools/llvm-readobj/codeview-merging-cycle.test
new file mode 100644
index 00000000000..3a96be9ca98
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/codeview-merging-cycle.test
@@ -0,0 +1,19 @@
+; RUN: not llvm-readobj -codeview-merged-types %S/Inputs/codeview-cycle.obj 2>&1 | FileCheck %s
+
+; CHECK: Error{{.*}} input type graph contains cycles
+
+; To reproduce codeview-cycle.obj:
+; $ cat codeview-cycle.asm
+; .model flat, C
+; .code
+; pfoo_list TYPEDEF PTR foo_list
+; foo_list STRUCT
+; next pfoo_list ?
+; data dd ?
+; foo_list ENDS
+; public foo
+; foo proc dst:ptr foo_list
+; ret
+; foo endp
+; end
+; $ ml -c -Zi codeview-cycle.asm
diff --git a/llvm/test/tools/llvm-readobj/codeview-merging-unsorted.test b/llvm/test/tools/llvm-readobj/codeview-merging-unsorted.test
new file mode 100644
index 00000000000..6aaab3a891e
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/codeview-merging-unsorted.test
@@ -0,0 +1,40 @@
+; RUN: llvm-readobj -codeview %S/Inputs/codeview-unsorted.obj | FileCheck %s
+; RUN: llvm-readobj -codeview-merged-types %S/Inputs/codeview-unsorted.obj | FileCheck %s --check-prefix=MERGED
+
+; The input type stream has records that refer to later type indices in the same
+; stream:
+
+; CHECK: Pointer (0x1000)
+; CHECK: Struct (0x1001)
+; CHECK: FieldList: {{.*}} (0x1002)
+; CHECK: FieldList (0x1002)
+; CHECK: Pointer (0x1003)
+; CHECK: Procedure (0x1004)
+; CHECK: ArgListType: {{.*}} (0x1005)
+; CHECK: ArgList (0x1005)
+
+; MERGED: Pointer (0x1000)
+; MERGED: FieldList (0x1001)
+; MERGED: Struct (0x1002)
+; MERGED: FieldList: {{.*}} (0x1001)
+; MERGED: Pointer (0x1003)
+; MERGED: ArgList (0x1004)
+; MERGED: Procedure (0x1005)
+; MERGED: ArgListType: {{.*}} (0x1004)
+
+
+; To reproduce codeview-unsorted.obj:
+; $ cat codeview-unsorted.asm
+; .model flat, C
+; .code
+; PBYTE TYPEDEF PTR BYTE
+; foo_list STRUCT
+; next PBYTE ?
+; data dd ?
+; foo_list ENDS
+; public foo
+; foo proc dst:ptr foo_list
+; ret
+; foo endp
+; end
+; $ ml -c -Zi codeview-unsorted.asm
OpenPOWER on IntegriCloud