From 78da0e40a8336dcd140ee2cf04aa6ee3166e67f3 Mon Sep 17 00:00:00 2001 From: r00ster91 Date: Sun, 28 May 2023 02:10:54 +0200 Subject: test cases: taking pointer of global tagged union Closes #11619 --- .../taking_pointer_of_global_tagged_union.zig | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 test/cases/taking_pointer_of_global_tagged_union.zig diff --git a/test/cases/taking_pointer_of_global_tagged_union.zig b/test/cases/taking_pointer_of_global_tagged_union.zig new file mode 100644 index 0000000000..ee9df21783 --- /dev/null +++ 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 -- cgit v1.2.3