From f937637a926e8c9eba53d8de9ebdba932a344db4 Mon Sep 17 00:00:00 2001 From: Araq Date: Wed, 23 Sep 2015 15:04:43 +0200 Subject: fixes #3357 --- compiler/vmgen.nim | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'compiler') diff --git a/compiler/vmgen.nim b/compiler/vmgen.nim index 32982602b..95fa43b48 100644 --- a/compiler/vmgen.nim +++ b/compiler/vmgen.nim @@ -1377,10 +1377,13 @@ proc genCheckedObjAccess(c: PCtx; n: PNode; dest: var TDest; flags: TGenFlags) = genObjAccess(c, n.sons[0], dest, flags) proc genArrAccess(c: PCtx; n: PNode; dest: var TDest; flags: TGenFlags) = - if n.sons[0].typ.skipTypes(abstractVarRange-{tyTypeDesc}).kind in { - tyString, tyCString}: + let arrayType = n.sons[0].typ.skipTypes(abstractVarRange-{tyTypeDesc}).kind + if arrayType in {tyString, tyCString}: genArrAccess2(c, n, dest, opcLdStrIdx, {}) + elif arrayType == tyTypeDesc: + c.genTypeLit(n.typ, dest) else: + echo renderTree(n) genArrAccess2(c, n, dest, opcLdArr, flags) proc getNullValueAux(obj: PNode, result: PNode) = -- cgit 1.4.1-2-gfad0