| //@ run-pass | |
| #![feature(core_intrinsics)] | |
| #![feature(const_heap)] | |
| use std::intrinsics; | |
| const FOO: &i32 = foo(); | |
| const FOO_RAW: *const i32 = foo(); | |
| const fn foo() -> &'static i32 { | |
| unsafe { | |
| let ptr = intrinsics::const_allocate(4, 4); | |
| let t = ptr as *mut i32; | |
| *t = 20; | |
| intrinsics::const_make_global(ptr); | |
| &*t | |
| } | |
| } | |
| fn main() { | |
| assert_eq!(*FOO, 20); | |
| assert_eq!(unsafe { *FOO_RAW }, 20); | |
| } |