diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2023-11-10 17:56:30 -0500 |
|---|---|---|
| committer | Jacob Young <jacobly0@users.noreply.github.com> | 2023-11-10 18:04:09 -0500 |
| commit | 89cac88e91cd0ff98acffc48c4791a8da0c39ae9 (patch) | |
| tree | 077c043926ee7b9728a628d021535878dfec625f | |
| parent | 59375b3c22ff6694a20847e87a162705dbbc632a (diff) | |
| download | zig-89cac88e91cd0ff98acffc48c4791a8da0c39ae9.tar.gz zig-89cac88e91cd0ff98acffc48c4791a8da0c39ae9.zip | |
behavior: add testing for LLVM SROA bugs
| -rw-r--r-- | test/behavior/union.zig | 17 |
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 } })); +} |
