// Optimized MIR shouldn't have critical call edges
//
//@ build-fail
//@ edition: 2021
//@ compile-flags: --crate-type=lib
//@ failure-status: 101
//@ dont-check-compiler-stderr
//@ error-pattern: encountered critical edge in `Call` terminator
#![feature(custom_mir, core_intrinsics)]
use core::intrinsics::mir::*;

#[custom_mir(dialect = "runtime", phase = "optimized")]
#[inline(always)]
pub fn f(a: u32) -> u32 {
    mir! {
        {
            match a {
                0 => bb1,
                _ => bb2,
            }
        }
        bb1 = {
            Call(RET = f(1), ReturnTo(bb2), UnwindTerminate(ReasonAbi))
        }

        bb2 = {
            RET = 2;
            Return()
        }
    }
}
