aboutsummaryrefslogtreecommitdiff
path: root/test/cases/eval.zig
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2017-01-26 15:34:36 -0500
committerAndrew Kelley <superjoe30@gmail.com>2017-01-26 15:34:36 -0500
commite0a422ae7e9716172ef316e88a1050f98fb7f1fa (patch)
treeb06e8598885211bfaf4fbabdb712257a54e4fa20 /test/cases/eval.zig
parent34a4d7a2017647e5f88d21cbfce16d8a837d6b4c (diff)
downloadzig-e0a422ae7e9716172ef316e88a1050f98fb7f1fa.tar.gz
zig-e0a422ae7e9716172ef316e88a1050f98fb7f1fa.zip
fix runtime branching tricking the comptime evaluation
closes #167
Diffstat (limited to 'test/cases/eval.zig')
-rw-r--r--test/cases/eval.zig16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/cases/eval.zig b/test/cases/eval.zig
index 2d6c6a8b94..31901edca0 100644
--- a/test/cases/eval.zig
+++ b/test/cases/eval.zig
@@ -175,3 +175,19 @@ fn constSlice() {
assert(b[0] == '2');
}
}
+
+fn tryToTrickEvalWithRuntimeIf() {
+ @setFnTest(this);
+
+ assert(testTryToTrickEvalWithRuntimeIf(true) == 10);
+}
+
+fn testTryToTrickEvalWithRuntimeIf(b: bool) -> usize {
+ comptime var i: usize = 0;
+ inline while (i < 10; i += 1) {
+ const result = if (b) false else true;
+ }
+ comptime {
+ return i;
+ }
+}