mirror of
https://github.com/rust-lang/rust
synced 2024-11-05 20:45:15 +00:00
34 lines
840 B
Rust
34 lines
840 B
Rust
// compile-flags: --target hexagon-unknown-linux-musl
|
|
// needs-llvm-components: hexagon
|
|
//
|
|
// Verify that the hexagon targets implement the repr(C) for enums correctly.
|
|
//
|
|
// See #82100
|
|
#![feature(never_type, rustc_attrs, no_core, lang_items)]
|
|
#![crate_type = "lib"]
|
|
#![no_core]
|
|
|
|
#[lang="sized"]
|
|
trait Sized {}
|
|
|
|
#[rustc_layout(debug)]
|
|
#[repr(C)]
|
|
enum A { Apple } //~ ERROR: layout_of
|
|
|
|
#[rustc_layout(debug)]
|
|
#[repr(C)]
|
|
enum B { Banana = 255, } //~ ERROR: layout_of
|
|
|
|
#[rustc_layout(debug)]
|
|
#[repr(C)]
|
|
enum C { Chaenomeles = 256, } //~ ERROR: layout_of
|
|
|
|
#[rustc_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_layout(debug)]
|
|
#[repr(C)]
|
|
enum T { Tangerine = TANGERINE as isize } //~ ERROR: layout_of
|