diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2016-01-14 15:01:55 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2016-01-14 15:01:55 +0100 |
commit | 1124c61c491ab335a7005b98e01cc1632f041ff5 (patch) | |
tree | 2876ddecdb36991e1d37e251031a442cc4393b6c /compiler/ccgcalls.nim | |
parent | 3838cd0066160c4b009a06125eff0016c12da32d (diff) | |
parent | 522f8f1cc60649b982f231d85ca0d1ac34f358d5 (diff) | |
download | Nim-1124c61c491ab335a7005b98e01cc1632f041ff5.tar.gz |
Merge branch 'devel' into new-ll
Diffstat (limited to 'compiler/ccgcalls.nim')
-rw-r--r-- | compiler/ccgcalls.nim | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/ccgcalls.nim b/compiler/ccgcalls.nim index 69cc30413..bd17f85e4 100644 --- a/compiler/ccgcalls.nim +++ b/compiler/ccgcalls.nim @@ -118,6 +118,14 @@ proc openArrayLoc(p: BProc, n: PNode): Rope = result = "$1->data, $1->$2" % [a.rdLoc, lenField(p)] of tyArray, tyArrayConstr: result = "$1, $2" % [rdLoc(a), rope(lengthOrd(a.t))] + of tyPtr, tyRef: + case lastSon(a.t).kind + of tyString, tySequence: + result = "(*$1)->data, (*$1)->$2" % [a.rdLoc, lenField(p)] + of tyArray, tyArrayConstr: + result = "$1, $2" % [rdLoc(a), rope(lengthOrd(lastSon(a.t)))] + else: + internalError("openArrayLoc: " & typeToString(a.t)) else: internalError("openArrayLoc: " & typeToString(a.t)) proc genArgStringToCString(p: BProc, n: PNode): Rope {.inline.} = |