rust/tests/ui/packed/packed-union-borrow-element.rs

26 lines
587 B
Rust

#![allow(dead_code)]
//@ ignore-emscripten weird assertion?
#[repr(packed)]
#[derive(Clone, Copy)]
struct Foo1(usize);
#[repr(packed(4))]
#[derive(Clone, Copy)]
struct Foo4(usize);
#[repr(packed(2))]
union Bar2 {
foo1: Foo1,
foo4: Foo4,
}
pub fn main() {
let bar = Bar2 { foo1: Foo1(2) };
let brw = unsafe { &bar.foo1.0 }; //~ERROR reference to field of packed struct is unaligned
assert_eq!(*brw, 2);
let bar = Bar2 { foo4: Foo4(2) };
let brw = unsafe { &bar.foo4.0 }; //~ERROR reference to field of packed union is unaligned
assert_eq!(*brw, 2);
}