diff options
Diffstat (limited to 'test/CodeGen/WinEH/wineh-asm.ll')
-rw-r--r-- | test/CodeGen/WinEH/wineh-asm.ll | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/CodeGen/WinEH/wineh-asm.ll b/test/CodeGen/WinEH/wineh-asm.ll new file mode 100644 index 0000000000000..ed99411810e76 --- /dev/null +++ b/test/CodeGen/WinEH/wineh-asm.ll @@ -0,0 +1,26 @@ +; RUN: opt -winehprepare < %s + +target triple = "x86_64-pc-windows-msvc" + +define void @test1() personality i32 (...)* @__CxxFrameHandler3 { +entry: + invoke void @f(i32 1) + to label %exit unwind label %cleanup + +cleanup: + %cp = cleanuppad within none [] + call void asm sideeffect "", ""() + cleanupret from %cp unwind to caller + +exit: + ret void +} + +; CHECK-LABEL: define void @test1( +; CHECK: %[[cp:.*]] = cleanuppad within none [] +; CHECK-NEXT: call void asm sideeffect "", ""() +; CHECK-NEXT: cleanupret from %[[cp]] unwind to caller + +declare void @f(i32) + +declare i32 @__CxxFrameHandler3(...) |