| //@ run-pass | |
| union U { | |
| a: (u8, u8), | |
| b: u16, | |
| } | |
| union W { | |
| a: u32, | |
| b: f32, | |
| } | |
| fn main() { | |
| unsafe { | |
| let mut u = U { a: (1, 1) }; | |
| assert_eq!(u.b, (1 << 8) + 1); | |
| u.b = (2 << 8) + 2; | |
| assert_eq!(u.a, (2, 2)); | |
| let mut w = W { a: 0b0_11111111_00000000000000000000000 }; | |
| assert_eq!(w.b, f32::INFINITY); | |
| w.b = f32::NEG_INFINITY; | |
| assert_eq!(w.a, 0b1_11111111_00000000000000000000000); | |
| } | |
| } |