From 95b076581a575a040eeaed5bd3a182d5adf7e402 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Fri, 9 Oct 2026 11:30:33 +0800 Subject: [PATCH] =?UTF-8?q?chore(dbg):=20pre-scan=20=E4=B8=8E=20=5FSlifeRe?= =?UTF-8?q?set=20=E4=B9=8B=E9=97=B4=E8=A1=A5=20p1d=20=E6=8E=A2=E9=92=88?= =?UTF-8?q?=EF=BC=88TEMP=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit p1c 之后仍崩,最后一段只剩 pre-scan 与 _SlifeReset;p1d 把两者分开。 --- App/lib/core/Gen/Func/FuncGenDef.vp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/App/lib/core/Gen/Func/FuncGenDef.vp b/App/lib/core/Gen/Func/FuncGenDef.vp index f6bcfa2..3c948ca 100644 --- a/App/lib/core/Gen/Func/FuncGenDef.vp +++ b/App/lib/core/Gen/Func/FuncGenDef.vp @@ -775,6 +775,8 @@ novirtual class FuncGenDef(CallGenBase.CallGenBase): stmt: ast.AST* = body.get(bi) if stmt is not None: self.Gen.StmtGenDecl.pre_scan_allocas(trans, stmt) + VLogger.info("TR.p1d.prescan.done", "TR") + # M3 owned slife(§4.2 函数级 scope guard):进入函数体前把登记区间起点抬到当前栈顶。 # 表是函数间共享的一段栈式区间,嵌套函数各自独立;退出时由 _SlifeRestore 弹回外层起点。 # 放在这里(而非更早)是因为上方存在多条提前返回分支(泛型模板/async/extern),