summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-readobj/codeview-merging-cycle.test
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2017-04-03 23:58:15 +0000
committerReid Kleckner <rnk@google.com>2017-04-03 23:58:15 +0000
commitc4b5d794f1fe2ebb3a3c770d978d7cc7fe389b91 (patch)
tree3f98b6176fac76c33e0a1657554dc476dfb16d4f /llvm/test/tools/llvm-readobj/codeview-merging-cycle.test
parent48a15fd9f180feb705d1d1c25b38d4f2e0c9e693 (diff)
downloadbcm5719-llvm-c4b5d794f1fe2ebb3a3c770d978d7cc7fe389b91.tar.gz
bcm5719-llvm-c4b5d794f1fe2ebb3a3c770d978d7cc7fe389b91.zip
[codeview] Cope with unsorted streams in type merging
Summary: MASM can produce type streams that are not topologically sorted. It can even produce type streams with circular references, but those are not common in practice. Reviewers: inglorion, ruiu Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31629 llvm-svn: 299403
Diffstat (limited to 'llvm/test/tools/llvm-readobj/codeview-merging-cycle.test')
-rw-r--r--llvm/test/tools/llvm-readobj/codeview-merging-cycle.test19
1 files changed, 19 insertions, 0 deletions
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
OpenPOWER on IntegriCloud