// Regression test for issue #117331, where variable `a` was misidentified as // being in SSA form (the definition occurs on the return edge only). // //@ edition:2021 //@ compile-flags: --crate-type=lib //@ build-pass //@ needs-unwind #![feature(custom_mir, core_intrinsics)] use core::intrinsics::mir::*; #[custom_mir(dialect = "runtime", phase = "optimized")] pub fn f() -> u32 { mir! { let a: u32; { Call(a = g(), ReturnTo(bb1), UnwindCleanup(bb2)) } bb1 = { RET = a; Return() } bb2 (cleanup) = { RET = a; UnwindResume() } } } #[inline(never)] pub fn g() -> u32 { 0 }