blob: 2d3200edab9f61447d350831c66a0a211f93a5f1 [file] [log] [blame] [edit]
//@ test-mir-pass: DeadStoreElimination-initial
pub struct Foo {
a: i32,
b: i64,
c: i32,
}
// EMIT_MIR ref.tuple.DeadStoreElimination-initial.diff
pub fn tuple(v: (i32, &Foo)) -> i32 {
// CHECK-LABEL: fn tuple
// CHECK: debug _dead => [[dead:_[0-9]+]];
// CHECK: bb0:
// CHECK: DBG: [[dead]] = &((*_3).2: i32)
let _dead = &v.1.c;
v.1.a
}
// EMIT_MIR ref.dead_first.DeadStoreElimination-initial.diff
pub fn dead_first(v: &Foo) -> &i32 {
// CHECK-LABEL: fn dead_first
// CHECK: debug a => [[var_a:_[0-9]+]];
// CHECK: bb0:
// CHECK: DBG: [[var_a]] = &((*_1).2: i32)
// CHECK: [[tmp_4:_[0-9]+]] = &((*_1).0: i32)
// CHECK: [[tmp_3:_[0-9]+]] = &(*[[tmp_4]])
// CHECK: [[var_a]] = move [[tmp_3]]
let mut a = &v.c;
a = &v.a;
a
}