aboutsummaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorGravatar zinc <zinc@downsta.ir> 2026-10-15 02:40:12 +0330
committerGravatar zinc <zinc@downsta.ir> 2026-10-15 02:40:12 +0330
commit0970a68bcb9165aca8512ecd9ee9c0077abb9468 (patch)
tree340714bee0b60a9b028924794573409b8e8b439b /src/compiler
parenttests: zc0typed.zc drops the .u on a typed parameter, which zc0 rejects since... (diff)
compiler: a //:lines marker starts a new file, so unbounded; and unchecked; of the source before it end there: a program joined to the unbounded runtime in a self-hosted run-only image is bounds-checked again (since d55b5fd its index errors went unreported); runtime_image_test expects the trap's exit status 2; spec 4.15.1, 4.x unchecked, 5.15.3
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/base.zc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/compiler/base.zc b/src/compiler/base.zc
index 88708f0..99ee10f 100644
--- a/src/compiler/base.zc
+++ b/src/compiler/base.zc
@@ -1321,11 +1321,13 @@ int lt_end(int b, int end) {
return 0;
}
// at the top level, a marker that comes before the item takes effect: lines are on, in its file.
+// a marker starts a new file, so the file switches of the one before it (unbounded; and
+// unchecked; in run.zc or rt.zc) end there: a program joined to the runtime is checked.
int lt_apply_marks() {
if (incdepth || ginst) return 0;
while (lt_next_mark < lt_nmarks && lt_marks[lt_next_mark * 2] < tline) {
lt_mark_base = lt_marks[lt_next_mark * 2]; lt_mark_file = lt_marks[lt_next_mark * 2 + 1];
- lines_on = 1; lt_next_mark++;
+ lines_on = 1; lt_next_mark++; bound_on = 1; check_on = 1;
}
return 0;
}