| //@ add-minicore | |
| //@ compile-flags: --target thumbv8m.main-none-eabihf | |
| //@ normalize-stderr: "randomization_seed: \d+" -> "randomization_seed: $$SEED" | |
| //@ needs-llvm-components: arm | |
| //@ ignore-backends: gcc | |
| // | |
| // Verify that thumb targets implement the repr(C) for enums correctly. | |
| // | |
| // See #87917 | |
| #![feature(rustc_attrs, no_core, lang_items)] | |
| #![crate_type = "lib"] | |
| #![no_core] | |
| extern crate minicore; | |
| use minicore::*; | |
| #[rustc_dump_layout(debug)] | |
| #[repr(C)] | |
| enum A { Apple } //~ ERROR: layout_of | |
| #[rustc_dump_layout(debug)] | |
| #[repr(C)] | |
| enum B { Banana = 255, } //~ ERROR: layout_of | |
| #[rustc_dump_layout(debug)] | |
| #[repr(C)] | |
| enum C { Chaenomeles = 256, } //~ ERROR: layout_of | |
| #[rustc_dump_layout(debug)] | |
| #[repr(C)] | |
| enum P { Peach = 0x1000_0000isize, } //~ ERROR: layout_of | |
| const TANGERINE: usize = 0x8100_0000; // hack to get negative numbers without negation operator! | |
| #[rustc_dump_layout(debug)] | |
| #[repr(C)] | |
| enum T { Tangerine = TANGERINE as isize } //~ ERROR: layout_of |