Demonstrate the bug
This commit is contained in:
parent
39c6804b92
commit
b658050846
2 changed files with 43 additions and 0 deletions
16
tests/mir-opt/instcombine_duplicate_switch_targets_e2e.rs
Normal file
16
tests/mir-opt/instcombine_duplicate_switch_targets_e2e.rs
Normal file
|
@ -0,0 +1,16 @@
|
|||
// compile-flags: -Zmir-opt-level=2 -Zinline-mir
|
||||
// ignore-debug: standard library debug assertions add a panic that breaks this optimization
|
||||
#![crate_type = "lib"]
|
||||
|
||||
pub enum Thing {
|
||||
A,
|
||||
B,
|
||||
}
|
||||
|
||||
// EMIT_MIR instcombine_duplicate_switch_targets_e2e.ub_if_b.PreCodegen.after.mir
|
||||
pub unsafe fn ub_if_b(t: Thing) -> Thing {
|
||||
match t {
|
||||
Thing::A => t,
|
||||
Thing::B => std::hint::unreachable_unchecked(),
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
// MIR for `ub_if_b` after PreCodegen
|
||||
|
||||
fn ub_if_b(_1: Thing) -> Thing {
|
||||
debug t => _1; // in scope 0 at $DIR/instcombine_duplicate_switch_targets_e2e.rs:+0:23: +0:24
|
||||
let mut _0: Thing; // return place in scope 0 at $DIR/instcombine_duplicate_switch_targets_e2e.rs:+0:36: +0:41
|
||||
let mut _2: isize; // in scope 0 at $DIR/instcombine_duplicate_switch_targets_e2e.rs:+2:9: +2:17
|
||||
scope 1 (inlined unreachable_unchecked) { // at $DIR/instcombine_duplicate_switch_targets_e2e.rs:14:21: 14:55
|
||||
scope 2 {
|
||||
scope 3 (inlined unreachable_unchecked::runtime) { // at $SRC_DIR/core/src/intrinsics.rs:LL:COL
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bb0: {
|
||||
_2 = discriminant(_1); // scope 0 at $DIR/instcombine_duplicate_switch_targets_e2e.rs:+1:11: +1:12
|
||||
switchInt(move _2) -> [0: bb2, 1: bb1, otherwise: bb1]; // scope 0 at $DIR/instcombine_duplicate_switch_targets_e2e.rs:+1:5: +1:12
|
||||
}
|
||||
|
||||
bb1: {
|
||||
unreachable; // scope 2 at $SRC_DIR/core/src/intrinsics.rs:LL:COL
|
||||
}
|
||||
|
||||
bb2: {
|
||||
_0 = move _1; // scope 0 at $DIR/instcombine_duplicate_switch_targets_e2e.rs:+2:21: +2:22
|
||||
return; // scope 0 at $DIR/instcombine_duplicate_switch_targets_e2e.rs:+5:2: +5:2
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue