; This checks to ensure that the inline pass deletes functions if they get 
; inlined into all of their callers.

; RUN: opt < %s -inline -S | \
; RUN:   not grep @reallysmall

define internal i32 @reallysmall(i32 %A) {
        ret i32 %A
}

define void @caller1() {
        call i32 @reallysmall( i32 5 )          ; <i32>:1 [#uses=0]
        ret void
}

define void @caller2(i32 %A) {
        call i32 @reallysmall( i32 %A )         ; <i32>:1 [#uses=0]
        ret void
}

define i32 @caller3(i32 %A) {
        %B = call i32 @reallysmall( i32 %A )            ; <i32> [#uses=1]
        ret i32 %B
}

