38 lines
680 B
Rust
38 lines
680 B
Rust
|
#![feature(custom_mir, core_intrinsics)]
|
||
|
|
||
|
extern crate core;
|
||
|
use core::intrinsics::mir::*;
|
||
|
|
||
|
// EMIT_MIR simple_assign.simple.built.after.mir
|
||
|
#[custom_mir(dialect = "built")]
|
||
|
pub fn simple(x: i32) -> i32 {
|
||
|
mir!(
|
||
|
let temp1: i32;
|
||
|
let temp2: _;
|
||
|
|
||
|
{
|
||
|
temp1 = x;
|
||
|
Goto(exit)
|
||
|
}
|
||
|
|
||
|
exit = {
|
||
|
temp2 = Move(temp1);
|
||
|
RET = temp2;
|
||
|
Return()
|
||
|
}
|
||
|
)
|
||
|
}
|
||
|
|
||
|
// EMIT_MIR simple_assign.simple_ref.built.after.mir
|
||
|
#[custom_mir(dialect = "built")]
|
||
|
pub fn simple_ref(x: &mut i32) -> &mut i32 {
|
||
|
mir!({
|
||
|
RET = Move(x);
|
||
|
Return()
|
||
|
})
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
assert_eq!(5, simple(5));
|
||
|
}
|