diff options
Diffstat (limited to 'src/test/ui/layout/zero-sized-array-union.rs')
| -rw-r--r-- | src/test/ui/layout/zero-sized-array-union.rs | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/src/test/ui/layout/zero-sized-array-union.rs b/src/test/ui/layout/zero-sized-array-union.rs deleted file mode 100644 index 1a662ba4467..00000000000 --- a/src/test/ui/layout/zero-sized-array-union.rs +++ /dev/null @@ -1,95 +0,0 @@ -#![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_layout(homogeneous_aggregate)] -type TestBaz1 = Baz1; -//~^ ERROR homogeneous_aggregate: Ok(Homogeneous - -#[repr(C)] -struct Baz2 { - x: f32, - y: f32, - u: U2, -} - -#[rustc_layout(homogeneous_aggregate)] -type TestBaz2 = Baz2; -//~^ ERROR homogeneous_aggregate: Ok(Homogeneous - -#[repr(C)] -struct Baz3 { - x: f32, - y: f32, - u: U3, -} - -#[rustc_layout(homogeneous_aggregate)] -type TestBaz3 = Baz3; -//~^ ERROR homogeneous_aggregate: Ok(Homogeneous - -#[repr(C)] -struct Baz4 { - x: f32, - y: f32, - u: U4, -} - -#[rustc_layout(homogeneous_aggregate)] -type TestBaz4 = Baz4; -//~^ ERROR homogeneous_aggregate: Ok(Homogeneous - -fn main() { } |
