diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-09-25 17:52:50 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-09-25 17:54:52 -0700 |
| commit | 04366576ea4be4959b596ebff7041d17e18d08d8 (patch) | |
| tree | 94dceb8f1e846e09356e5b40b884791a7cc314eb /test/behavior/struct.zig | |
| parent | 15f55b2805541276f491d255f60f501c8cbd1191 (diff) | |
| download | zig-04366576ea4be4959b596ebff7041d17e18d08d8.tar.gz zig-04366576ea4be4959b596ebff7041d17e18d08d8.zip | |
stage2: implement `@sizeOf` for non-packed structs
Diffstat (limited to 'test/behavior/struct.zig')
| -rw-r--r-- | test/behavior/struct.zig | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/behavior/struct.zig b/test/behavior/struct.zig index 6f00b71057..e048848799 100644 --- a/test/behavior/struct.zig +++ b/test/behavior/struct.zig @@ -31,3 +31,24 @@ test "return empty struct instance" { fn returnEmptyStructInstance() StructWithNoFields { return empty_global_instance; } + +const StructFoo = struct { + a: i32, + b: bool, + c: f32, +}; +test "structs" { + var foo: StructFoo = undefined; + @memset(@ptrCast([*]u8, &foo), 0, @sizeOf(StructFoo)); + foo.a += 1; + foo.b = foo.a == 1; + try testFoo(foo); + testMutation(&foo); + try expect(foo.c == 100); +} +fn testFoo(foo: StructFoo) !void { + try expect(foo.b); +} +fn testMutation(foo: *StructFoo) void { + foo.c = 100; +} |
