This commit is contained in:
Araq
2012-10-24 23:26:13 +02:00
parent 7e31134ff6
commit 86ed918157
3 changed files with 19 additions and 1 deletions

View File

@@ -684,6 +684,10 @@ proc genArrayElem(p: BProc, e: PNode, d: var TLoc) =
else:
lineCg(p, cpsStmts, "if ($1 < $2 || $1 > $3) #raiseIndexError();$n",
[rdCharLoc(b), first, intLiteral(lastOrd(ty))])
else:
let idx = getOrdValue(e.sons[1])
if idx < firstOrd(ty) or idx > lastOrd(ty):
localError(e.info, errIndexOutOfBounds)
if d.k == locNone: d.s = a.s
putIntoDest(p, d, elemType(skipTypes(ty, abstractVar)),
ropef("$1[($2)- $3]", [rdLoc(a), rdCharLoc(b), first]))

View File

@@ -0,0 +1,14 @@
discard """
errormsg: "index out of bounds"
line: 11
"""
type TTestArr = array[0..1, int16]
var f: TTestArr
f[0] = 30
f[1] = 40
f[2] = 50
f[3] = 60
echo(repr(f))

View File

@@ -81,7 +81,7 @@ case $uos in
esac
case $ucpu in
*i386* | *i486* | *i586* | *i686* | *bepc* )
*i386* | *i486* | *i586* | *i686* | *bepc* | *i86pc* )
mycpu="i386" ;;
*amd*64* | *x86-64* | *x86_64* )
mycpu="amd64" ;;