summaryrefslogtreecommitdiffstats
path: root/tests/mir-opt/building/custom/arbitrary_let.rs
blob: f8ee8504e32295f74538516615b5e51c8c7512df (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
29
// skip-filecheck
#![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);
}