fixes #14444; add genLineDir before assignment (#21201)

* fixes #14444; add `genLineDir` before raises

* add a test case

* fixes differently
This commit is contained in:
ringabout
2022-12-30 00:06:57 +08:00
committed by GitHub
parent e602ebeb66
commit 705da9d452
2 changed files with 15 additions and 0 deletions

View File

@@ -1620,6 +1620,7 @@ proc genAsgn(p: BProc, e: PNode, fastAsgn: bool) =
initLoc(a, locNone, le, OnUnknown)
a.flags.incl(lfEnforceDeref)
a.flags.incl(lfPrepareForMutation)
genLineDir(p, le) # it can be a nkBracketExpr, which may raise
expr(p, le, a)
a.flags.excl(lfPrepareForMutation)
if fastAsgn: incl(a.flags, lfNoDeepCopy)

14
tests/errmsgs/t14444.nim Normal file
View File

@@ -0,0 +1,14 @@
discard """
matrix: "--hints:off"
exitcode: "1"
output: '''
t14444.nim(13) t14444
fatal.nim(51) sysFatal
Error: unhandled exception: index out of bounds, the container is empty [IndexDefect]
'''
"""
when true: # bug #14444
var i: string
i[10] = 'j'
echo i