diff options
Diffstat (limited to 'tests/programs/explain_checks.zc')
| -rw-r--r-- | tests/programs/explain_checks.zc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/programs/explain_checks.zc b/tests/programs/explain_checks.zc new file mode 100644 index 0000000..d528cd8 --- /dev/null +++ b/tests/programs/explain_checks.zc @@ -0,0 +1,22 @@ +namespace; +include rt; + +// zy --explain-checks: one line per check the compiler keeps, with its reason +int[8] t; +int g(int* p, int k) { return p[k]; } +int main() { + int i, s = 0, n = 8, k = 3; + int* q = rt.new(8); + int[?] a = rt.new(int[?], 8); + for (i = 0; i < 8; i++) s = s + t[i]; + for (i = 0; i < n; i++) s = s + t[i]; + for (i = 0; i < n; i++) { s = s + t[i]; n = n - 0; } + s = s + t[k]; + for (i = 0; i < n; i++) s = s + q[i]; + for (i = 0; i < n; i++) { s = s + q[i]; rt.put_s(""); } + for (i = 0; i < n; i++) s = s + a[i]; + s = s + g(q, 2); + unbounded { s = s + t[k]; } + rt.put_n(s); rt.put_c(10); + return 0; +} |
