avoid some compiler crashes in debug mode
This commit is contained in:
parent
65dda79335
commit
93068f1ba6
2 changed files with 8 additions and 3 deletions
|
|
@ -314,7 +314,9 @@ proc handleGenericInvocation(cl: var TReplTypeVars, t: PType): PType =
|
||||||
if bodyIsNew and newbody.typeInst == nil:
|
if bodyIsNew and newbody.typeInst == nil:
|
||||||
#doassert newbody.typeInst == nil
|
#doassert newbody.typeInst == nil
|
||||||
newbody.typeInst = result
|
newbody.typeInst = result
|
||||||
if tfRefsAnonObj in newbody.flags:
|
if tfRefsAnonObj in newbody.flags and newbody.kind != tyGenericInst:
|
||||||
|
# can come here for tyGenericInst too, see tests/metatype/ttypeor.nim
|
||||||
|
# need to look into this issue later
|
||||||
assert newbody.kind in {tyRef, tyPtr}
|
assert newbody.kind in {tyRef, tyPtr}
|
||||||
assert newbody.lastSon.typeInst == nil
|
assert newbody.lastSon.typeInst == nil
|
||||||
newbody.lastSon.typeInst = result
|
newbody.lastSon.typeInst = result
|
||||||
|
|
|
||||||
|
|
@ -244,7 +244,10 @@ proc pushSafePoint(f: PStackFrame; pc: int) =
|
||||||
if f.safePoints.isNil: f.safePoints = @[]
|
if f.safePoints.isNil: f.safePoints = @[]
|
||||||
f.safePoints.add(pc)
|
f.safePoints.add(pc)
|
||||||
|
|
||||||
proc popSafePoint(f: PStackFrame) = discard f.safePoints.pop()
|
proc popSafePoint(f: PStackFrame) =
|
||||||
|
# XXX this needs a proper fix!
|
||||||
|
if f.safePoints.len > 0:
|
||||||
|
discard f.safePoints.pop()
|
||||||
|
|
||||||
proc cleanUpOnException(c: PCtx; tos: PStackFrame):
|
proc cleanUpOnException(c: PCtx; tos: PStackFrame):
|
||||||
tuple[pc: int, f: PStackFrame] =
|
tuple[pc: int, f: PStackFrame] =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue