zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 78da0e40a8336dcd140ee2cf04aa6ee3166e67f3 (tree)
parent 413a86f7eb5bd7d6d2a57670be5e06ab1217a248
Author: r00ster91 <r00ster91@proton.me>
Date:   Sun, 28 May 2023 02:10:54 +0200

test cases: taking pointer of global tagged union

Closes #11619

Diffstat:
Atest/cases/taking_pointer_of_global_tagged_union.zig | 26++++++++++++++++++++++++++
1 file changed, 26 insertions(+), 0 deletions(-)

diff --git a/test/cases/taking_pointer_of_global_tagged_union.zig b/test/cases/taking_pointer_of_global_tagged_union.zig @@ -0,0 +1,26 @@ +const std = @import("std"); + +const A = union(enum) { hello: usize, merp: void }; + +var global_a: A = .{ .hello = 12 }; +var global_usize: usize = 0; + +fn doSomethingWithUsize(ptr: *usize) usize { + ptr.* = ptr.* + 1; + return ptr.*; +} + +pub fn main() !void { + try std.testing.expect(doSomethingWithUsize(&global_usize) == 1); + + switch (global_a) { + .merp => return, + .hello => |*value| { + try std.testing.expect(doSomethingWithUsize(value) == 13); + }, + } +} + +// run +// backend=llvm +// target=native