; RUN: opt -passes='function(require<no-op-function>),cgscc(function-attrs)' -disable-output < %s -debug-pass-manager 2>&1 | FileCheck %s
; CHECK: Running pass: PostOrderFunctionAttrsPass on (f)
; CHECK: Invalidating analysis: NoOpFunctionAnalysis on f
; CHECK-NOT: Invalidating analysis: NoOpFunctionAnalysis on h
; CHECK: Invalidating analysis: NoOpFunctionAnalysis on g
; CHECK-NOT: Invalidating analysis: NoOpFunctionAnalysis on h
; CHECK: Running pass: PostOrderFunctionAttrsPass on (g)
; CHECK: Running pass: PostOrderFunctionAttrsPass on (h)
declare i32 @e(ptr)
define i32 @f(i32 %a) {
ret i32 %a
}
define i32 @g(i32 %b) {
%c = call i32 @f(i32 %b)
ret i32 %c
}
define i32 @h(i32 %b) {
%c = call i32 @e(ptr @f)
ret i32 %c
}