aboutsummaryrefslogtreecommitdiff
path: root/test/behavior
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-11-29 17:17:25 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-11-30 00:20:49 -0500
commitdeda6b514691c3a7ffc7931469886d0e7be2f67e (patch)
treec71ae6f91304fc3d7e68da2fc04fc1fe4154e61f /test/behavior
parentb8473ae7d333ea2750e55e712722d446076e99d9 (diff)
downloadzig-deda6b514691c3a7ffc7931469886d0e7be2f67e.tar.gz
zig-deda6b514691c3a7ffc7931469886d0e7be2f67e.zip
LLVM: fix canElideLoad behavior with loops
closes #13546
Diffstat (limited to 'test/behavior')
-rw-r--r--test/behavior/while.zig21
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);
+}