-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
A-MIRArea: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.htmlArea: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html
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.
Metadata
Metadata
Assignees
Labels
A-MIRArea: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.htmlArea: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html