mirror of https://github.com/rust-lang/rust
44 lines
720 B
Rust
44 lines
720 B
Rust
//@ compile-flags: -Z print-type-sizes --crate-type=lib
|
|
//@ build-pass
|
|
//@ ignore-pass
|
|
|
|
// At one point, zero-sized fields such as those in this file were causing
|
|
// incorrect output from `-Z print-type-sizes`.
|
|
|
|
struct S1 {
|
|
x: u32,
|
|
y: u32,
|
|
tag: (),
|
|
}
|
|
|
|
struct Void();
|
|
struct Empty {}
|
|
|
|
struct S5<TagW, TagZ> {
|
|
tagw: TagW,
|
|
w: u32,
|
|
unit: (),
|
|
x: u32,
|
|
void: Void,
|
|
y: u32,
|
|
empty: Empty,
|
|
z: u32,
|
|
tagz: TagZ,
|
|
}
|
|
|
|
pub fn test() {
|
|
let _s1: S1 = S1 { x: 0, y: 0, tag: () };
|
|
|
|
let _s5: S5<(), Empty> = S5 {
|
|
tagw: (),
|
|
w: 1,
|
|
unit: (),
|
|
x: 2,
|
|
void: Void(),
|
|
y: 3,
|
|
empty: Empty {},
|
|
z: 4,
|
|
tagz: Empty {},
|
|
};
|
|
}
|