rust/tests/run-pass/zst.rs

27 lines
568 B
Rust
Raw Normal View History

// the following flag prevents this test from running on the host machine
// this should only be run on miri, because rust doesn't (yet?) optimize ZSTs of different types
// into the same memory location
// ignore-test
#[derive(PartialEq, Debug)]
2016-06-08 06:43:34 -05:00
struct A;
fn zst_ret() -> A {
A
}
fn use_zst() -> A {
let a = A;
a
}
fn main() {
assert_eq!(zst_ret(), A);
assert_eq!(use_zst(), A);
assert_eq!(&A as *const A as *const (), &() as *const _);
assert_eq!(&A as *const A, &A as *const A);
2016-09-22 08:47:16 -05:00
let x = 42 as *mut ();
unsafe { *x = (); }
}