diff options
author | Araq <rumpf_a@web.de> | 2015-09-23 15:04:43 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2015-09-23 21:46:33 +0200 |
commit | f937637a926e8c9eba53d8de9ebdba932a344db4 (patch) | |
tree | 607dc6c5cfb6d6eef794fe8e12d376cc5bd84efe /compiler/vmgen.nim | |
parent | 90d1ad4231a0b83ecac7074f34af058d475e06ee (diff) | |
download | Nim-f937637a926e8c9eba53d8de9ebdba932a344db4.tar.gz |
fixes #3357
Diffstat (limited to 'compiler/vmgen.nim')
-rw-r--r-- | compiler/vmgen.nim | 7 |
1 files changed, 5 insertions, 2 deletions
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) = |