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