; Test that when a pass like correlated-propagation populates an analysis such
; as LVI with references back into the IR of a function that the inliner will
; delete, this doesn't crash or go awry despite the inliner clearing the analyses
; separately from when it deletes the function.
;
; RUN: opt -debug-pass-manager -S < %s 2>&1 \
; RUN:     -passes='cgscc(inline,function(correlated-propagation))' \
; RUN:     | FileCheck %s
;
; CHECK-LABEL: Starting llvm::Module pass manager run.
; CHECK: Running pass: InlinerPass on (callee)
; CHECK: Running pass: CorrelatedValuePropagationPass on callee
; CHECK: Running analysis: LazyValueAnalysis
; CHECK: Running pass: InlinerPass on (caller)
; CHECK: Clearing all analysis results for: callee
; CHECK: Running pass: CorrelatedValuePropagationPass on caller
; CHECK: Running analysis: LazyValueAnalysis

define internal i32 @callee(i32 %x) {
; CHECK-NOT: @callee
entry:
  ret i32 %x
}

define i32 @caller(i32 %x) {
; CHECK-LABEL: define i32 @caller
entry:
  %call = call i32 @callee(i32 %x)
; CHECK-NOT: call
  ret i32 %call
; CHECK: ret i32 %x
}
