Closed
Description
#![feature(rustc_attrs)]
pub struct D(u32);
impl Drop for D {
fn drop(&mut self) {}
}
#[rustc_mir(graphviz="mir.gv")]
fn mir() -> D {
let mut d = D(1);
d
}
will result in
fn() -> D {
let mut var0: D; // d
let mut tmp0: ();
let mut tmp1: D;
bb0: {
var0 = D(const 1);
drop(var0) -> bb2; // drop
}
bb1: {
return;
}
bb2: {
tmp1 = var0; // then use
return = tmp1;
drop(tmp1) -> bb1;
}
}
This is likely to be caused by me.