aboutsummaryrefslogtreecommitdiff
path: root/tests/programs/explain_checks.zc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/programs/explain_checks.zc')
-rw-r--r--tests/programs/explain_checks.zc22
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;
+}