about summary refs log tree commit diff
path: root/tests/mir-opt/building/custom/arrays.rs
blob: e9cdded4a0e68318c4b1396d44871b3d0306710a (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
// skip-filecheck
#![feature(custom_mir, core_intrinsics)]

extern crate core;
use core::intrinsics::mir::*;

// EMIT_MIR arrays.arrays.built.after.mir
#[custom_mir(dialect = "built")]
fn arrays<const C: usize>() -> usize {
    mir! {
        {
            let x = [5_i32; C];
            let y = &raw const x;
            let z = CastUnsize::<_, *const [i32]>(y);
            let c = PtrMetadata(z);
            RET = c;
            Return()
        }
    }
}

fn main() {
    assert_eq!(arrays::<20>(), 20);
}