fixes #12547 [backport]
This commit is contained in:
parent
de5f6a07c2
commit
1214960a1b
1 changed files with 7 additions and 0 deletions
|
|
@ -231,6 +231,12 @@ proc getTemp(cc: PCtx; tt: PType): TRegister =
|
||||||
# for e.g. mNAdd[Multiple]:
|
# for e.g. mNAdd[Multiple]:
|
||||||
let k = if typ.isNil: slotTempComplex else: typ.getSlotKind
|
let k = if typ.isNil: slotTempComplex else: typ.getSlotKind
|
||||||
result = getFreeRegister(cc, k, start = 0)
|
result = getFreeRegister(cc, k, start = 0)
|
||||||
|
when false:
|
||||||
|
# enable this to find "register" leaks:
|
||||||
|
if result == 4:
|
||||||
|
echo "begin ---------------"
|
||||||
|
writeStackTrace()
|
||||||
|
echo "end ----------------"
|
||||||
|
|
||||||
proc freeTemp(c: PCtx; r: TRegister) =
|
proc freeTemp(c: PCtx; r: TRegister) =
|
||||||
let c = c.prc
|
let c = c.prc
|
||||||
|
|
@ -1703,6 +1709,7 @@ proc genCheckedObjAccessAux(c: PCtx; n: PNode; dest: var TDest; flags: TGenFlags
|
||||||
let setLit = c.genx(checkExpr[1])
|
let setLit = c.genx(checkExpr[1])
|
||||||
var rs = c.getTemp(getSysType(c.graph, n.info, tyBool))
|
var rs = c.getTemp(getSysType(c.graph, n.info, tyBool))
|
||||||
c.gABC(n, opcContainsSet, rs, setLit, discVal)
|
c.gABC(n, opcContainsSet, rs, setLit, discVal)
|
||||||
|
c.freeTemp(discVal)
|
||||||
c.freeTemp(setLit)
|
c.freeTemp(setLit)
|
||||||
# If the check fails let the user know
|
# If the check fails let the user know
|
||||||
let lab1 = c.xjmp(n, if negCheck: opcFJmp else: opcTJmp, rs)
|
let lab1 = c.xjmp(n, if negCheck: opcFJmp else: opcTJmp, rs)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue