diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-11-29 17:17:25 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-11-30 00:20:49 -0500 |
| commit | deda6b514691c3a7ffc7931469886d0e7be2f67e (patch) | |
| tree | c71ae6f91304fc3d7e68da2fc04fc1fe4154e61f /test/behavior/while.zig | |
| parent | b8473ae7d333ea2750e55e712722d446076e99d9 (diff) | |
| download | zig-deda6b514691c3a7ffc7931469886d0e7be2f67e.tar.gz zig-deda6b514691c3a7ffc7931469886d0e7be2f67e.zip | |
LLVM: fix canElideLoad behavior with loops
closes #13546
Diffstat (limited to 'test/behavior/while.zig')
| -rw-r--r-- | test/behavior/while.zig | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/behavior/while.zig b/test/behavior/while.zig index 333ed1bd77..a54563bb83 100644 --- a/test/behavior/while.zig +++ b/test/behavior/while.zig @@ -343,3 +343,24 @@ test "else continue outer while" { } else continue; } } + +test "try terminating an infinite loop" { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + + // Test coverage for https://github.com/ziglang/zig/issues/13546 + const Foo = struct { + trash: i32, + + fn bar() anyerror!@This() { + return .{ .trash = 1234 }; + } + }; + var t = true; + errdefer t = false; + try expect(while (true) { + if (t) break t; + _ = try Foo.bar(); + } else unreachable); +} |
