1; Test that we can inline a simple function, turning the calls in it into invoke
2; instructions
3
4; RUN: opt < %s -inline -S | FileCheck %s
5; RUN: opt < %s -passes='cgscc(inline)' -S | FileCheck %s
6
7declare void @might_throw()
8
9define internal void @callee() {
10entry:
11  call void @might_throw()
12  ret void
13}
14
15; caller returns true if might_throw throws an exception...
16define i32 @caller() personality i32 (...)* @__gxx_personality_v0 {
17; CHECK-LABEL: define i32 @caller() personality i32 (...)* @__gxx_personality_v0
18entry:
19  invoke void @callee()
20      to label %cont unwind label %exc
21; CHECK-NOT: @callee
22; CHECK: invoke void @might_throw()
23
24cont:
25  ret i32 0
26
27exc:
28  %exn = landingpad {i8*, i32}
29         cleanup
30  ret i32 1
31}
32
33declare i32 @__gxx_personality_v0(...)
34