]> git.lizzy.rs Git - rust.git/blob - src/test/ui/repr/repr-packed-contains-align.rs
Auto merge of #100845 - timvermeulen:iter_compare, r=scottmcm
[rust.git] / src / test / ui / repr / repr-packed-contains-align.rs
1 #![allow(dead_code)]
2
3 #[repr(align(16))]
4 #[derive(Clone, Copy)]
5 struct SA(i32);
6
7 #[derive(Clone, Copy)]
8 struct SB(SA);
9
10 #[repr(align(16))]
11 #[derive(Clone, Copy)]
12 union UA {
13     i: i32
14 }
15
16 #[derive(Clone, Copy)]
17 union UB {
18     a: UA
19 }
20
21 #[repr(packed)]
22 struct SC(SA); //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
23
24 #[repr(packed)]
25 struct SD(SB); //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
26
27 #[repr(packed)]
28 struct SE(UA); //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
29
30 #[repr(packed)]
31 struct SF(UB); //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
32
33 #[repr(packed)]
34 union UC { //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
35     a: UA
36 }
37
38 #[repr(packed)]
39 union UD { //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
40     n: UB
41 }
42
43 #[repr(packed)]
44 union UE { //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
45     a: SA
46 }
47
48 #[repr(packed)]
49 union UF { //~ ERROR: packed type cannot transitively contain a `#[repr(align)]` type
50     n: SB
51 }
52
53 fn main() {}