2023-10-16 12:36:39 -05:00
|
|
|
// skip-filecheck
|
2023-05-26 13:47:51 -05:00
|
|
|
// Test that MatchBranchSimplification doesn't ICE on a SwitchInt where
|
|
|
|
// one of the targets is the block that the SwitchInt terminates.
|
|
|
|
#![crate_type = "lib"]
|
|
|
|
#![feature(core_intrinsics, custom_mir)]
|
|
|
|
use std::intrinsics::mir::*;
|
|
|
|
|
|
|
|
// EMIT_MIR switch_to_self.test.MatchBranchSimplification.diff
|
|
|
|
#[custom_mir(dialect = "runtime", phase = "post-cleanup")]
|
|
|
|
pub fn test(x: bool) {
|
|
|
|
mir!(
|
|
|
|
{
|
|
|
|
Goto(bb0)
|
|
|
|
}
|
|
|
|
bb0 = {
|
|
|
|
match x { false => bb0, _ => bb1 }
|
|
|
|
}
|
|
|
|
bb1 = {
|
|
|
|
match x { false => bb0, _ => bb1 }
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|