aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorr00ster91 <r00ster91@proton.me>2023-05-28 02:10:54 +0200
committerr00ster91 <r00ster91@proton.me>2023-06-27 19:57:23 -0400
commit78da0e40a8336dcd140ee2cf04aa6ee3166e67f3 (patch)
treed4396ee76bddc1448aceadcd7457688b833363c8
parent413a86f7eb5bd7d6d2a57670be5e06ab1217a248 (diff)
downloadzig-78da0e40a8336dcd140ee2cf04aa6ee3166e67f3.tar.gz
zig-78da0e40a8336dcd140ee2cf04aa6ee3166e67f3.zip
test cases: taking pointer of global tagged union
Closes #11619
-rw-r--r--test/cases/taking_pointer_of_global_tagged_union.zig26
1 files 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
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