#![feature(rustc_attrs)]

// Various tests around the behavior of zero-sized arrays and
// unions. This matches the behavior of modern C compilers, though
// older compilers (and sometimes clang) treat `T[0]` as a "flexible
// array member". See more
// details in #56877.

#[derive(Copy, Clone)]
#[repr(C)]
struct Empty { }

#[derive(Copy, Clone)]
#[repr(C)]
struct Empty2 {
    e: Empty
}

#[derive(Copy, Clone)]
#[repr(C)]
struct Empty3 {
    z: [f32; 0],
}

#[derive(Copy, Clone)]
#[repr(C)]
struct Empty4 {
    e: Empty3
}

#[repr(C)]
union U1 {
    s: Empty
}

#[repr(C)]
union U2 {
    s: Empty2
}

#[repr(C)]
union U3 {
    s: Empty3
}

#[repr(C)]
union U4 {
    s: Empty4
}

#[repr(C)]
struct Baz1 {
    x: f32,
    y: f32,
    u: U1,
}

#[rustc_dump_layout(homogeneous_aggregate)]
type TestBaz1 = Baz1;
//~^ ERROR homogeneous_aggregate: Ok(Homogeneous

#[repr(C)]
struct Baz2 {
    x: f32,
    y: f32,
    u: U2,
}

#[rustc_dump_layout(homogeneous_aggregate)]
type TestBaz2 = Baz2;
//~^ ERROR homogeneous_aggregate: Ok(Homogeneous

#[repr(C)]
struct Baz3 {
    x: f32,
    y: f32,
    u: U3,
}

#[rustc_dump_layout(homogeneous_aggregate)]
type TestBaz3 = Baz3;
//~^ ERROR homogeneous_aggregate: Ok(Homogeneous

#[repr(C)]
struct Baz4 {
    x: f32,
    y: f32,
    u: U4,
}

#[rustc_dump_layout(homogeneous_aggregate)]
type TestBaz4 = Baz4;
//~^ ERROR homogeneous_aggregate: Ok(Homogeneous

fn main() { }
