mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
behavior: add test for #8277
Test `@sizeOf` reified union with zero-size payload fields. closes #8277
This commit is contained in:
parent
09ff03a57a
commit
ed23615638
2 changed files with 17 additions and 0 deletions
|
|
@ -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");
|
||||
|
|
|
|||
16
test/behavior/bugs/8277.zig
Normal file
16
test/behavior/bugs/8277.zig
Normal file
|
|
@ -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 }))));
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue