| #![feature(core_intrinsics)] |
| #![feature(const_intrinsic_raw_eq)] |
| |
| const RAW_EQ_PADDING: bool = unsafe { |
| std::intrinsics::raw_eq(&(1_u8, 2_u16), &(1_u8, 2_u16)) |
| //~^ ERROR evaluation of constant value failed |
| //~| requires initialized memory |
| }; |
| |
| const RAW_EQ_PTR: bool = unsafe { |
| std::intrinsics::raw_eq(&(&0), &(&1)) |
| //~^ ERROR evaluation of constant value failed |
| //~| unable to turn pointer into integer |
| }; |
| |
| const RAW_EQ_NOT_ALIGNED: bool = unsafe { |
| let arr = [0u8; 4]; |
| let aref = &*arr.as_ptr().cast::<i32>(); |
| std::intrinsics::raw_eq(aref, aref) |
| //~^ ERROR evaluation of constant value failed |
| //~| alignment |
| }; |
| |
| pub fn main() { |
| } |