| //@ run-pass | |
| #[repr(packed)] | |
| struct Foo1 { | |
| bar: u8, | |
| baz: usize | |
| } | |
| #[repr(packed(2))] | |
| struct Foo2 { | |
| bar: u8, | |
| baz: usize | |
| } | |
| #[repr(C, packed(4))] | |
| struct Foo4C { | |
| bar: u8, | |
| baz: usize | |
| } | |
| pub fn main() { | |
| let foo1 = Foo1 { bar: 1, baz: 2 }; | |
| match foo1 { | |
| Foo1 {bar, baz} => { | |
| assert_eq!(bar, 1); | |
| assert_eq!(baz, 2); | |
| } | |
| } | |
| let foo2 = Foo2 { bar: 1, baz: 2 }; | |
| match foo2 { | |
| Foo2 {bar, baz} => { | |
| assert_eq!(bar, 1); | |
| assert_eq!(baz, 2); | |
| } | |
| } | |
| let foo4 = Foo4C { bar: 1, baz: 2 }; | |
| match foo4 { | |
| Foo4C {bar, baz} => { | |
| assert_eq!(bar, 1); | |
| assert_eq!(baz, 2); | |
| } | |
| } | |
| } |