summaryrefslogtreecommitdiffstats
path: root/src/test/mir-opt/building/custom/arbitrary_let.rs
blob: 776df3151ffd7817186f8b8cefc0a1dd6747495f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#![feature(custom_mir, core_intrinsics)]

extern crate core;
use core::intrinsics::mir::*;
use core::ptr::{addr_of, addr_of_mut};

// EMIT_MIR arbitrary_let.arbitrary_let.built.after.mir
#[custom_mir(dialect = "built")]
fn arbitrary_let(x: i32) -> i32 {
    mir!(
        {
            let y = x;
            Goto(second)
        }
        third = {
            RET = z;
            Return()
        }
        second = {
            let z = y;
            Goto(third)
        }
    )
}

fn main() {
    assert_eq!(arbitrary_let(5), 5);
}