diff options
Diffstat (limited to 'rod/ccgexprs.nim')
-rwxr-xr-x | rod/ccgexprs.nim | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/rod/ccgexprs.nim b/rod/ccgexprs.nim index ecff707ae..6eae842f2 100755 --- a/rod/ccgexprs.nim +++ b/rod/ccgexprs.nim @@ -1093,15 +1093,16 @@ proc genRepr(p: BProc, e: PNode, d: var TLoc) = ropef("reprSet($1, $2)", [rdLoc(a), genTypeInfo(p.module, t)])) of tyOpenArray: useMagic(p.module, "reprOpenArray") + var b: TLoc case a.t.kind - of tyOpenArray: putIntoDest(p, d, e.typ, ropef("$1, $1Len0", [rdLoc(a)])) + of tyOpenArray: putIntoDest(p, b, e.typ, rdLoc(a)) of tyString, tySequence: - putIntoDest(p, d, e.typ, ropef("$1->data, $1->Sup.len", [rdLoc(a)])) + putIntoDest(p, b, e.typ, ropef("$1->data, $1->Sup.len", [rdLoc(a)])) of tyArray, tyArrayConstr: - putIntoDest(p, d, e.typ, + putIntoDest(p, b, e.typ, ropef("$1, $2", [rdLoc(a), toRope(lengthOrd(a.t))])) else: InternalError(e.sons[0].info, "genRepr()") - putIntoDest(p, d, e.typ, ropef("reprOpenArray($1, $2)", [rdLoc(d), + putIntoDest(p, d, e.typ, ropef("reprOpenArray($1, $2)", [rdLoc(b), genTypeInfo(p.module, elemType(t))])) of tyCString, tyArray, tyArrayConstr, tyRef, tyPtr, tyPointer, tyNil, tySequence: |