// build-pass // compile-flags: -Copt-level=0 // Regression test for #88043: LLVM crash when the RemoveZsts mir-opt pass is enabled. // We should not see the error: // `Basic Block in function '_ZN4main10take_until17h0067b8a660429bc9E' does not have terminator!` fn bump() -> Option { unreachable!() } fn take_until(terminate: impl Fn() -> bool) { loop { if terminate() { return; } else { bump(); } } } // CHECK-LABEL: @main fn main() { take_until(|| true); f(None); } fn f(_a: Option) -> Option { loop { g(); () } } fn g() -> Option { None }