parent
93c8427fca
commit
cd592ed85b
1 changed files with 8 additions and 2 deletions
|
|
@ -443,6 +443,12 @@ proc constructLoc(p: BProc, loc: var TLoc, isTemp = false) =
|
||||||
if optSeqDestructors in p.config.globalOptions and skipTypes(typ, abstractInst + {tyStatic}).kind in {tyString, tySequence}:
|
if optSeqDestructors in p.config.globalOptions and skipTypes(typ, abstractInst + {tyStatic}).kind in {tyString, tySequence}:
|
||||||
linefmt(p, cpsStmts, "$1.len = 0; $1.p = NIM_NIL;$n", [rdLoc(loc)])
|
linefmt(p, cpsStmts, "$1.len = 0; $1.p = NIM_NIL;$n", [rdLoc(loc)])
|
||||||
elif not isComplexValueType(typ):
|
elif not isComplexValueType(typ):
|
||||||
|
if containsGarbageCollectedRef(loc.t):
|
||||||
|
var nilLoc: TLoc
|
||||||
|
initLoc(nilLoc, locTemp, loc.lode, OnStack)
|
||||||
|
nilLoc.r = rope("NIM_NIL")
|
||||||
|
genRefAssign(p, loc, nilLoc)
|
||||||
|
else:
|
||||||
linefmt(p, cpsStmts, "$1 = ($2)0;$n", [rdLoc(loc),
|
linefmt(p, cpsStmts, "$1 = ($2)0;$n", [rdLoc(loc),
|
||||||
getTypeDesc(p.module, typ, mapTypeChooser(loc))])
|
getTypeDesc(p.module, typ, mapTypeChooser(loc))])
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue