; Test that we can inline a simple function, turning the calls in it into invoke
; instructions

; RUN: opt < %s -passes=inline -S | FileCheck %s
; RUN: opt < %s -passes='module-inline' -S | FileCheck %s

declare void @might_throw()

define internal void @callee() {
entry:
  call void @might_throw()
  ret void
}

; caller returns true if might_throw throws an exception...
define i32 @caller() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: define i32 @caller() personality ptr @__gxx_personality_v0
entry:
  invoke void @callee()
      to label %cont unwind label %exc
; CHECK-NOT: @callee
; CHECK: invoke void @might_throw()

cont:
  ret i32 0

exc:
  %exn = landingpad {ptr, i32}
         cleanup
  ret i32 1
}

declare i32 @__gxx_personality_v0(...)
