This commit is contained in:
Andreas Rumpf
2026-06-25 01:04:01 +02:00
committed by GitHub
parent 4e1dd0b9fc
commit 4998affe70
2 changed files with 33 additions and 1 deletions

View File

@@ -838,8 +838,12 @@ proc assignGlobalVar(p: BProc, n: PNode; value: Rope) =
else:
initializer = value
genGlobalVarDecl(p.module.s[cfsVars], p, n, td, initializer = initializer)
if p.withinLoop > 0 and value == "":
if p.withinLoop > 0 and value == "" and
s.loc.t.skipTypes(abstractInst).kind notin {tyVar, tyLent}:
# fixes tests/run/tzeroarray:
# Don't reset borrowed references (var/lent): the pointer itself is still
# uninitialized here, so resetLoc would dereference garbage. Such variables
# (e.g. the loop var of `mitems`) are always assigned before use anyway.
backendEnsureMutable s
resetLoc(p, s.locImpl)