• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: sed -e s/.T1:// %s | not llvm-as -disable-output 2>&1 | FileCheck --check-prefix=CHECK1 %s
2; RUN: sed -e s/.T2:// %s | not llvm-as -disable-output 2>&1 | FileCheck --check-prefix=CHECK2 %s
3; RUN: sed -e s/.T3:// %s | not llvm-as -disable-output 2>&1 | FileCheck --check-prefix=CHECK3 %s
4; RUN: sed -e s/.T4:// %s | not llvm-as -disable-output 2>&1 | FileCheck --check-prefix=CHECK4 %s
5
6;T1: define void @f() {
7;T1:   entry:
8;T1:     catchret from undef to label %next
9;T1:     ; CHECK1: CatchReturnInst needs to be provided a CatchPad
10;T1:   next:
11;T1:     unreachable
12;T1: }
13
14;T2: define void @f() {
15;T2:   entry:
16;T2:     %x = cleanuppad within none []
17;T2:     ; catchret's first operand's operator must be catchpad
18;T2:     catchret from %x to label %entry
19;T2:     ; CHECK2: CatchReturnInst needs to be provided a CatchPad
20;T2: }
21
22;T3: define void @f() {
23;T3:   entry:
24;T3:     cleanupret from undef unwind label %next
25;T3:     ; CHECK3: CleanupReturnInst needs to be provided a CleanupPad
26;T3:   next:
27;T3:     unreachable
28;T3: }
29
30;T4: define void @f() {
31;T4:   entry:
32;T4:     %cs = catchswitch within none [label %next] unwind to caller
33;T4:   next:
34;T4:     %x = catchpad within %cs []
35;T4:     ; cleanupret first operand's operator must be cleanuppad
36;T4:     cleanupret from %x unwind to caller
37;T4:     ; CHECK4: CleanupReturnInst needs to be provided a CleanupPad
38;T4: }
39