[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / Transforms / CodeExtractor / inline_eh_1.ll
blob4769c528df80ae205e0336f35447da2516df5923
1 ; RUN: opt < %s -skip-partial-inlining-cost-analysis -passes=partial-inliner -S  | FileCheck %s
3 declare dso_local void @bar()
4 declare dso_local i32 @__CxxFrameHandler3(...)
6 define internal void @callee(i1 %cond) personality ptr @__CxxFrameHandler3 {
7 entry:
8   br i1 %cond, label %if.then, label %if.end
10 if.then:
11   invoke void @bar()
12           to label %invoke.cont unwind label %ehcleanup
14 invoke.cont:
15   br label %try.cont
17 ehcleanup:
18   %0 = cleanuppad within none []
19   cleanupret from %0 unwind label %catch.dispatch
21 catch.dispatch:
22   %1 = catchswitch within none [label %catch] unwind to caller
24 catch:
25   %2 = catchpad within %1 [ptr null, i32 64, ptr null]
26   catchret from %2 to label %catchret.dest
28 catchret.dest:
29   br label %try.cont
31 try.cont:
32   br label %if.end
34 if.end:
35   ret void
38 define internal void @caller(i1 %cond) {
39 ; CHECK-LABEL: define {{.*}} @caller
40 entry:
41 ; CHECK: entry:
42 ; CHECK-NEXT: br i1
43 ; CHECK: codeRepl.i:
44 ; CHECK-NEXT: call void @callee.1.{{.*}}()
45   call void @callee(i1 %cond)
46   ret void
49 ; CHECK-LABEL: define {{.*}} @callee.1.{{.*}}() personality ptr @__CxxFrameHandler3
50 ; CHECK: invoke void @bar()
51 ; CHECK: cleanuppad
52 ; CHECK-NEXT: cleanupret
53 ; CHECK: catchswitch
54 ; CHECK: catchpad
55 ; CHECK-NEXT: catchret