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

; RUN: opt < %s -inline -S | \
; RUN:   not grep {call\[^e\]}

declare void @might_throw()

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

; caller returns true if might_throw throws an exception...
define i32 @caller() {
        invoke void @callee( )
                        to label %cont unwind label %exc

cont:           ; preds = %0
        ret i32 0

exc:            ; preds = %0
        ret i32 1
}
