aboutsummaryrefslogtreecommitdiff
path: root/test/Tooling/ms-asm-no-target.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/Tooling/ms-asm-no-target.cpp')
-rw-r--r--test/Tooling/ms-asm-no-target.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/Tooling/ms-asm-no-target.cpp b/test/Tooling/ms-asm-no-target.cpp
new file mode 100644
index 000000000000..68930b159680
--- /dev/null
+++ b/test/Tooling/ms-asm-no-target.cpp
@@ -0,0 +1,13 @@
+// RUN: not clang-check "%s" -- -fasm-blocks -target x86_64-apple-darwin10 2>&1 | FileCheck -check-prefix=CHECK-X86 %s
+// RUN: not clang-check "%s" -- -fasm-blocks -target powerpc-apple-darwin10 2>&1 | FileCheck -check-prefix=CHECK-PPC %s
+
+// Test that we diagnose instead of crashing when the application hasn't
+// initialized LLVM targets supporting the MS-style inline asm parser.
+// Also test that the ordinary error is emitted on unsupported architectures.
+
+void Break() {
+ __asm { int 3 }
+}
+
+// CHECK-X86: error: MS-style inline assembly is not available
+// CHECK-PPC: error: Unsupported architecture 'powerpc' for MS-style inline assembly