diff options
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r-- | llvm/test/CodeGen/X86/inconsistent_landingpad.ll | 30 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/token_landingpad.ll | 22 |
2 files changed, 52 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/inconsistent_landingpad.ll b/llvm/test/CodeGen/X86/inconsistent_landingpad.ll new file mode 100644 index 00000000000..495e999c4a9 --- /dev/null +++ b/llvm/test/CodeGen/X86/inconsistent_landingpad.ll @@ -0,0 +1,30 @@ +; RUN: not llvm-as -disable-output <%s 2>&1 | FileCheck %s + +define void @test() personality i32 (...)* @dummy_personality { +; CHECK: The landingpad instruction should have a consistent result type inside a function +entry: + invoke void @dummy1() + to label %next unwind label %unwind1 + +unwind1: + %lp1 = landingpad token + cleanup + br label %return + +next: + invoke void @dummy2() + to label %return unwind label %unwind2 + +unwind2: + %lp2 = landingpad { i8*, i32 } + cleanup + br label %return + +return: + ret void +} + +declare void @dummy1() +declare void @dummy2() + +declare i32 @dummy_personality(...) diff --git a/llvm/test/CodeGen/X86/token_landingpad.ll b/llvm/test/CodeGen/X86/token_landingpad.ll new file mode 100644 index 00000000000..41e8a793235 --- /dev/null +++ b/llvm/test/CodeGen/X86/token_landingpad.ll @@ -0,0 +1,22 @@ +; RUN: llc < %s | FileCheck %s + +; This test verifies that SelectionDAG can handle landingPad of token type. + +define void @test() personality i32 (...)* @dummy_personality { +; CHECK: .cfi_personality 155, _dummy_personality +entry: + invoke void @dummy() + to label %return unwind label %unwind + +unwind: ; preds = %entry + %lp = landingpad token + cleanup + br label %return + +return: ; preds = %entry + ret void +} + +declare void @dummy() + +declare i32 @dummy_personality(...) |