blob: bf05019d5ced15ffb2c7ecbf4addb241e0052d5d [file] [log] [blame]
pub enum Empty {}
fn empty() -> Option<Empty> {
None
}
fn loop_forever() {
loop {}
}
fn main() {
let x = true;
if let Some(bomb) = empty() {
if x {
loop_forever()
}
match bomb {}
}
}
// END RUST SOURCE
// START rustc.main.UnreachablePropagation.before.mir
// bb3: {
// StorageLive(_4);
// _4 = move ((_2 as Some).0: Empty);
// StorageLive(_5);
// StorageLive(_6);
// _6 = _1;
// switchInt(_6) -> [false: bb4, otherwise: bb5];
// }
// bb4: {
// _5 = ();
// goto -> bb6;
// }
// bb5: {
// _5 = const loop_forever() -> bb6;
// }
// bb6: {
// StorageDead(_6);
// StorageDead(_5);
// StorageLive(_7);
// unreachable;
// }
// }
// END rustc.main.UnreachablePropagation.before.mir
// START rustc.main.UnreachablePropagation.after.mir
// bb3: {
// StorageLive(_4);
// _4 = move ((_2 as Some).0: Empty);
// StorageLive(_5);
// StorageLive(_6);
// _6 = _1;
// goto -> bb4;
// }
// bb4: {
// _5 = const loop_forever() -> bb5;
// }
// bb5: {
// StorageDead(_6);
// StorageDead(_5);
// StorageLive(_7);
// unreachable;
// }
// }
// END rustc.main.UnreachablePropagation.after.mir