aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2023-11-10 17:56:30 -0500
committerJacob Young <jacobly0@users.noreply.github.com>2023-11-10 18:04:09 -0500
commit89cac88e91cd0ff98acffc48c4791a8da0c39ae9 (patch)
tree077c043926ee7b9728a628d021535878dfec625f
parent59375b3c22ff6694a20847e87a162705dbbc632a (diff)
downloadzig-89cac88e91cd0ff98acffc48c4791a8da0c39ae9.tar.gz
zig-89cac88e91cd0ff98acffc48c4791a8da0c39ae9.zip
behavior: add testing for LLVM SROA bugs
-rw-r--r--test/behavior/union.zig17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/behavior/union.zig b/test/behavior/union.zig
index 67be88d735..338db47036 100644
--- a/test/behavior/union.zig
+++ b/test/behavior/union.zig
@@ -2042,3 +2042,20 @@ test "circular dependency through pointer field of a union" {
try expect(outer.u.outer == null);
try expect(outer.u.inner == null);
}
+
+test "pass nested union with rls" {
+ const Union = union(enum) {
+ a: u32,
+ b: union(enum) {
+ c: u7,
+ d: u3,
+ },
+
+ fn getC(u: @This()) u7 {
+ return u.b.c;
+ }
+ };
+
+ var c: u7 = 32;
+ try expectEqual(@as(u7, 32), Union.getC(.{ .b = .{ .c = c } }));
+}