2020-03-12 10:58:34 -05:00
|
|
|
// check-pass
|
2018-06-04 11:32:06 -05:00
|
|
|
|
|
|
|
enum Foo {
|
|
|
|
A = 5,
|
|
|
|
B = 42,
|
|
|
|
}
|
|
|
|
enum Bar {
|
|
|
|
C = 42,
|
|
|
|
D = 99,
|
|
|
|
}
|
2019-08-30 02:35:02 -05:00
|
|
|
#[repr(C)]
|
2018-06-04 11:32:06 -05:00
|
|
|
union Union {
|
|
|
|
foo: &'static Foo,
|
|
|
|
bar: &'static Bar,
|
2018-09-16 13:27:56 -05:00
|
|
|
u8: &'static u8,
|
2018-06-04 11:32:06 -05:00
|
|
|
}
|
2018-09-16 13:27:56 -05:00
|
|
|
static BAR: u8 = 42;
|
2018-06-04 11:32:06 -05:00
|
|
|
static FOO: (&Foo, &Bar) = unsafe {(
|
2018-09-16 13:27:56 -05:00
|
|
|
Union { u8: &BAR }.foo,
|
|
|
|
Union { u8: &BAR }.bar,
|
2018-06-04 11:32:06 -05:00
|
|
|
)};
|
|
|
|
|
2019-08-29 19:01:04 -05:00
|
|
|
static FOO2: (&Foo, &Bar) = unsafe {(std::mem::transmute(&BAR), std::mem::transmute(&BAR))};
|
|
|
|
|
2018-06-04 11:32:06 -05:00
|
|
|
fn main() {}
|