diff options
| author | 2026-10-15 02:40:33 +0330 | |
|---|---|---|
| committer | 2026-10-15 02:40:33 +0330 | |
| commit | 5cc95ef2f5e83ae851b938ccf3a10e640fe7a3d7 (patch) | |
| tree | 340714bee0b60a9b028924794573409b8e8b439b /src | |
| parent | merge work/dtor: destructors (drop on any heap value, heap(), struct drop, co... (diff) | |
| parent | compiler: a //:lines marker starts a new file, so unbounded; and unchecked; o... (diff) | |
merge work/triage: zc0typed.zc without .u on a typed parameter; a //:lines marker ends unbounded;/unchecked; so self-hosted run-only images bounds-check the program again
Diffstat (limited to 'src')
| -rw-r--r-- | src/compiler/base.zc | 4 |
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; } |
