rust/tests/ui/repr/repr-packed-contains-align.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

54 lines
1.1 KiB
Rust
Raw Normal View History

#![allow(dead_code)]
#[repr(align(16))]
2022-06-30 02:33:18 +00:00
#[derive(Clone, Copy)]
struct SA(i32);
2022-06-30 02:33:18 +00:00
#[derive(Clone, Copy)]
struct SB(SA);
#[repr(align(16))]
2022-06-30 02:33:18 +00:00
#[derive(Clone, Copy)]
union UA {
i: i32
}
2022-06-30 02:33:18 +00:00
#[derive(Clone, Copy)]
union UB {
a: UA
}
#[repr(packed)]
struct SC(SA); //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
#[repr(packed)]
struct SD(SB); //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
#[repr(packed)]
struct SE(UA); //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
#[repr(packed)]
struct SF(UB); //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
#[repr(packed)]
union UC { //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
a: UA
}
#[repr(packed)]
union UD { //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
n: UB
}
#[repr(packed)]
union UE { //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
a: SA
}
#[repr(packed)]
union UF { //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
n: SB
}
fn main() {}