From 86ed9181570d16406e63754bd409c2b33c73b4a5 Mon Sep 17 00:00:00 2001 From: Araq Date: Wed, 24 Oct 2012 23:26:13 +0200 Subject: fixes #235 --- compiler/ccgexprs.nim | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'compiler') diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim index abdfbd613..5989d94b3 100755 --- a/compiler/ccgexprs.nim +++ b/compiler/ccgexprs.nim @@ -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])) -- cgit 1.4.1-2-gfad0