aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGenCXX/microsoft-abi-eh-inlineasm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGenCXX/microsoft-abi-eh-inlineasm.cpp')
-rw-r--r--test/CodeGenCXX/microsoft-abi-eh-inlineasm.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/CodeGenCXX/microsoft-abi-eh-inlineasm.cpp b/test/CodeGenCXX/microsoft-abi-eh-inlineasm.cpp
new file mode 100644
index 000000000000..4179508a8da5
--- /dev/null
+++ b/test/CodeGenCXX/microsoft-abi-eh-inlineasm.cpp
@@ -0,0 +1,18 @@
+// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -triple=x86_64-pc-windows-msvc \
+// RUN: -fexceptions -fcxx-exceptions | FileCheck %s
+
+// Make sure calls to inline asm have funclet bundles.
+
+extern "C" void might_throw();
+extern "C" void foo() {
+ try {
+ might_throw();
+ } catch (int) {
+ __asm__("nop");
+ }
+}
+
+// CHECK-LABEL: define dso_local void @foo()
+// CHECK: invoke void @might_throw()
+// CHECK: %[[CATCHPAD:[^ ]*]] = catchpad within
+// CHECK: call void asm sideeffect "nop", {{.*}} [ "funclet"(token %[[CATCHPAD]]) ]