diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-11-04 06:40:33 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-04 06:40:33 +0100 |
| commit | e6eaa2fe69c3bfbece0e1323d1002ecab289dd1d (patch) | |
| tree | 2d70bd3de7c0b7a18c77a3815c677fe07dba1604 /src/test/ui/repr/aligned_enum_cast.rs | |
| parent | 61c6cdb5f4fc18489c17613c7a4caf7356308239 (diff) | |
| parent | 35b16d01ce149716a8d1443fff6a4c6815f3e56d (diff) | |
| download | rust-e6eaa2fe69c3bfbece0e1323d1002ecab289dd1d.tar.gz rust-e6eaa2fe69c3bfbece0e1323d1002ecab289dd1d.zip | |
Rollup merge of #103930 - fee1-dead-contrib:mv-from-root, r=jyn514
Move some tests from `src/test/ui` to more reasonable places
Diffstat (limited to 'src/test/ui/repr/aligned_enum_cast.rs')
| -rw-r--r-- | src/test/ui/repr/aligned_enum_cast.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/ui/repr/aligned_enum_cast.rs b/src/test/ui/repr/aligned_enum_cast.rs new file mode 100644 index 00000000000..1ddf127172e --- /dev/null +++ b/src/test/ui/repr/aligned_enum_cast.rs @@ -0,0 +1,25 @@ +// run-pass +// allows aligned custom discriminant enums to cast into other types +// See the issue #92464 for more info +#[allow(dead_code)] +#[repr(align(8))] +enum Aligned { + Zero = 0, + One = 1, +} + +fn main() { + let aligned = Aligned::Zero; + let fo = aligned as u8; + println!("foo {}", fo); + assert_eq!(fo, 0); + println!("{}", tou8(Aligned::Zero)); + assert_eq!(tou8(Aligned::Zero), 0); +} + +#[inline(never)] +fn tou8(al: Aligned) -> u8 { + // Cast behind a function call so ConstProp does not see it + // (so that we can test codegen). + al as u8 +} |
