diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
commit | 698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch) | |
tree | 173a775858bd501c378080a10dca74132f05bc50 /src/test/ui/conflicting-repr-hints.rs | |
parent | Initial commit. (diff) | |
download | rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip |
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/conflicting-repr-hints.rs')
-rw-r--r-- | src/test/ui/conflicting-repr-hints.rs | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/test/ui/conflicting-repr-hints.rs b/src/test/ui/conflicting-repr-hints.rs new file mode 100644 index 000000000..ed82b6a74 --- /dev/null +++ b/src/test/ui/conflicting-repr-hints.rs @@ -0,0 +1,80 @@ +#![allow(dead_code)] + +#[repr(C)] +enum A { + A, +} + +#[repr(u64)] +enum B { + B, +} + +#[repr(C, u64)] //~ ERROR conflicting representation hints +//~^ WARN this was previously accepted +enum C { + C, +} + +#[repr(u32, u64)] //~ ERROR conflicting representation hints +//~^ WARN this was previously accepted +enum D { + D, +} + +#[repr(C, packed)] +struct E(i32); + +#[repr(packed, align(8))] +struct F(i32); //~ ERROR type has conflicting packed and align representation hints + +#[repr(packed)] +#[repr(align(8))] +struct G(i32); //~ ERROR type has conflicting packed and align representation hints + +#[repr(align(8))] +#[repr(packed)] +struct H(i32); //~ ERROR type has conflicting packed and align representation hints + +#[repr(packed, packed(2))] +struct I(i32); //~ ERROR type has conflicting packed representation hints + +#[repr(packed(2))] +#[repr(packed)] +struct J(i32); //~ ERROR type has conflicting packed representation hints + +#[repr(packed, packed(1))] +struct K(i32); + +#[repr(packed, align(8))] +union X { + //~^ ERROR type has conflicting packed and align representation hints + i: i32, +} + +#[repr(packed)] +#[repr(align(8))] +union Y { + //~^ ERROR type has conflicting packed and align representation hints + i: i32, +} + +#[repr(align(8))] +#[repr(packed)] +union Z { + //~^ ERROR type has conflicting packed and align representation hints + i: i32, +} + +#[repr(packed, align(0x100))] +pub struct S(u16); //~ ERROR type has conflicting packed and align representation hints + +#[repr(packed, align(0x100))] +pub union U { //~ ERROR type has conflicting packed and align representation hints + u: u16 +} + +static B: U = U { u: 0 }; +static A: S = S(0); + +fn main() {} |