zig/test/behavior/bugs/8277.zig
Michael Dusan ed23615638 behavior: add test for #8277
Test `@sizeOf` reified union with zero-size payload fields.

closes #8277
2023-01-04 15:48:00 -05:00

17 lines
800 B
Zig

const std = @import("std");
const builtin = @import("builtin");
test "@sizeOf reified union zero-size payload fields" {
comptime {
try std.testing.expect(0 == @sizeOf(@Type(@typeInfo(union {}))));
try std.testing.expect(0 == @sizeOf(@Type(@typeInfo(union { a: void }))));
if (builtin.mode == .Debug or builtin.mode == .ReleaseSafe) {
try std.testing.expect(1 == @sizeOf(@Type(@typeInfo(union { a: void, b: void }))));
try std.testing.expect(1 == @sizeOf(@Type(@typeInfo(union { a: void, b: void, c: void }))));
} else {
try std.testing.expect(0 == @sizeOf(@Type(@typeInfo(union { a: void, b: void }))));
try std.testing.expect(0 == @sizeOf(@Type(@typeInfo(union { a: void, b: void, c: void }))));
}
}
}