| // bindgen-flags: --raw-line '#![cfg(feature = "nightly")]' --rust-target 1.33 |
| |
| /// This should not be opaque; we can see the attributes and can pack the |
| /// struct. |
| struct AlignedToOne { |
| int i; |
| } __attribute__ ((packed,aligned(1))); |
| |
| /// This should be be packed because Rust 1.33 has `#[repr(packed(N))]`. |
| struct AlignedToTwo { |
| int i; |
| } __attribute__ ((packed,aligned(2))); |
| |
| #pragma pack(1) |
| |
| /// This should not be opaque because although `libclang` doesn't give us the |
| /// `#pragma pack(1)`, we can detect that alignment is 1 and add |
| /// `#[repr(packed)]` to the struct ourselves. |
| struct PackedToOne { |
| int x; |
| int y; |
| }; |
| |
| #pragma pack() |
| |
| #pragma pack(2) |
| |
| /// This should be be packed because Rust 1.33 has `#[repr(packed(N))]`. |
| struct PackedToTwo { |
| int x; |
| int y; |
| }; |
| |
| #pragma pack() |