diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2017-01-26 15:34:36 -0500 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2017-01-26 15:34:36 -0500 |
| commit | e0a422ae7e9716172ef316e88a1050f98fb7f1fa (patch) | |
| tree | b06e8598885211bfaf4fbabdb712257a54e4fa20 /test/cases/eval.zig | |
| parent | 34a4d7a2017647e5f88d21cbfce16d8a837d6b4c (diff) | |
| download | zig-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.zig | 16 |
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; + } +} |
