mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-04-27 19:09:47 +03:00
behavior: add test for #8277
Test `@sizeOf` reified union with zero-size payload fields. closes #8277
This commit is contained in:
committed by
Andrew Kelley
parent
09ff03a57a
commit
ed23615638
@@ -74,6 +74,7 @@ test {
|
||||
_ = @import("behavior/bugs/7047.zig");
|
||||
_ = @import("behavior/bugs/7187.zig");
|
||||
_ = @import("behavior/bugs/7325.zig");
|
||||
_ = @import("behavior/bugs/8277.zig");
|
||||
_ = @import("behavior/bugs/8646.zig");
|
||||
_ = @import("behavior/bugs/9584.zig");
|
||||
_ = @import("behavior/bugs/10138.zig");
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
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 }))));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user