From 7c54e48bca711a6596be4bb17fcaa4330b9928e3 Mon Sep 17 00:00:00 2001 From: zinc Date: Wed, 14 Oct 2026 15:52:01 +0330 Subject: line tables and backtraces: port agent/line-tables onto main, op 56 on the x86-64 jit, docs, measurements, tests; default genome reservation 0x68000 --- src/compiler/expr.zc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/compiler/expr.zc') diff --git a/src/compiler/expr.zc b/src/compiler/expr.zc index 40de6ef..f41109e 100644 --- a/src/compiler/expr.zc +++ b/src/compiler/expr.zc @@ -647,7 +647,7 @@ word closure_layout(int closure_index, int count) { // variable in. ctx_push / ctx_pop save and restore the enclosing function's // compiler state around the body. int closure() { - int np = 0; char*[20] pn; word[20] pty; int hop, entry, i, t, envl, ncap, c, result, declared = 0, tags = 0, tag; word[20] ptags; + int np = 0; char*[20] pn; word[20] pty; int hop, entry, i, t, envl, ncap, c, result, declared = 0, tags = 0, tag, lt, lfl = tline; word[20] ptags; word expected = closure_expected; closure_expected = 0; reserve_closures(nclo + 1); if (o3on) serr("closures can't be made inside an o3 region"); @@ -679,6 +679,7 @@ int closure() { hop = hole(); op(O_JMP); entry = here; fn_begin(1, 0); + lt = lt_begin(entry, "", lfl); if (declared) fty = declared; prologue(); borrow_prologue(); i = 0; @@ -699,6 +700,7 @@ int closure() { if (result <= 0 || live) result = tword; if (declared) result = declared; epilogue(); + lt_end(lt, here); nclo--; c = nclo; ncap = clo_n[c]; -- cgit v1.2.3