2024-06-21 05:15:36 +00:00
|
|
|
//@ normalize-stderr-test: "pref: Align\([1-8] bytes\)" -> "pref: $$SOME_ALIGN"
|
2023-02-19 01:42:16 +00:00
|
|
|
#![feature(never_type, rustc_attrs, type_alias_impl_trait, repr_simd)]
|
2020-03-10 21:31:27 +00:00
|
|
|
#![crate_type = "lib"]
|
|
|
|
|
2020-03-20 16:48:03 +00:00
|
|
|
#[rustc_layout(debug)]
|
2023-02-19 01:42:16 +00:00
|
|
|
#[derive(Copy, Clone)]
|
2020-04-06 07:22:48 +00:00
|
|
|
enum E { Foo, Bar(!, i32, i32) } //~ ERROR: layout_of
|
2020-03-20 16:48:03 +00:00
|
|
|
|
|
|
|
#[rustc_layout(debug)]
|
2020-04-06 07:22:48 +00:00
|
|
|
struct S { f1: i32, f2: (), f3: i32 } //~ ERROR: layout_of
|
2020-03-20 16:48:03 +00:00
|
|
|
|
|
|
|
#[rustc_layout(debug)]
|
2020-04-06 07:22:48 +00:00
|
|
|
union U { f1: (i32, i32), f3: i32 } //~ ERROR: layout_of
|
2020-03-10 21:31:27 +00:00
|
|
|
|
|
|
|
#[rustc_layout(debug)]
|
2020-04-06 07:22:48 +00:00
|
|
|
type Test = Result<i32, i32>; //~ ERROR: layout_of
|
2020-04-05 15:07:06 +00:00
|
|
|
|
|
|
|
#[rustc_layout(debug)]
|
2020-04-06 07:22:48 +00:00
|
|
|
type T = impl std::fmt::Debug; //~ ERROR: layout_of
|
2023-09-02 12:03:25 +00:00
|
|
|
fn f() -> T {
|
|
|
|
0i32
|
|
|
|
}
|
2020-04-05 15:07:06 +00:00
|
|
|
|
2022-11-03 14:45:42 +00:00
|
|
|
#[rustc_layout(debug)]
|
|
|
|
pub union V { //~ ERROR: layout_of
|
|
|
|
a: [u16; 0],
|
|
|
|
b: u8,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[rustc_layout(debug)]
|
|
|
|
pub union W { //~ ERROR: layout_of
|
|
|
|
b: u8,
|
|
|
|
a: [u16; 0],
|
|
|
|
}
|
|
|
|
|
|
|
|
#[rustc_layout(debug)]
|
|
|
|
pub union Y { //~ ERROR: layout_of
|
|
|
|
b: [u8; 0],
|
|
|
|
a: [u16; 0],
|
|
|
|
}
|
|
|
|
|
2023-02-19 01:42:16 +00:00
|
|
|
#[rustc_layout(debug)]
|
|
|
|
#[repr(packed(1))]
|
|
|
|
union P1 { x: u32 } //~ ERROR: layout_of
|
|
|
|
|
|
|
|
#[rustc_layout(debug)]
|
|
|
|
#[repr(packed(1))]
|
|
|
|
union P2 { x: (u32, u32) } //~ ERROR: layout_of
|
|
|
|
|
|
|
|
#[repr(simd)]
|
|
|
|
#[derive(Copy, Clone)]
|
|
|
|
struct F32x4(f32, f32, f32, f32);
|
|
|
|
|
|
|
|
#[rustc_layout(debug)]
|
|
|
|
#[repr(packed(1))]
|
|
|
|
union P3 { x: F32x4 } //~ ERROR: layout_of
|
|
|
|
|
|
|
|
#[rustc_layout(debug)]
|
|
|
|
#[repr(packed(1))]
|
|
|
|
union P4 { x: E } //~ ERROR: layout_of
|
|
|
|
|
2022-12-01 07:16:57 +00:00
|
|
|
#[rustc_layout(debug)]
|
|
|
|
#[repr(packed(1))]
|
|
|
|
union P5 { zst: [u16; 0], byte: u8 } //~ ERROR: layout_of
|
|
|
|
|
2022-11-03 14:45:42 +00:00
|
|
|
#[rustc_layout(debug)]
|
|
|
|
type X = std::mem::MaybeUninit<u8>; //~ ERROR: layout_of
|
|
|
|
|
2023-09-02 12:03:25 +00:00
|
|
|
#[rustc_layout(debug)]
|
|
|
|
const C: () = (); //~ ERROR: can only be applied to
|
|
|
|
|
|
|
|
impl S {
|
|
|
|
#[rustc_layout(debug)]
|
|
|
|
const C: () = (); //~ ERROR: can only be applied to
|
2020-04-05 15:07:06 +00:00
|
|
|
}
|
2023-09-09 14:52:20 +00:00
|
|
|
|
|
|
|
#[rustc_layout(debug)]
|
|
|
|
type Impossible = (str, str); //~ ERROR: cannot be known at compilation time
|