This commit is contained in:
cooldome 2018-03-02 11:14:41 +00:00 • committed by Andreas Rumpf
commit 4164ec4f8b
2 changed files with 19 additions and 2 deletions

View file

@ -243,7 +243,10 @@ proc genSingleVar(p: BProc, a: PNode) =
if params != nil: params.add(~", ") if params != nil: params.add(~", ")
assert(sonsLen(typ) == sonsLen(typ.n)) assert(sonsLen(typ) == sonsLen(typ.n))
add(params, genOtherArg(p, value, i, typ)) add(params, genOtherArg(p, value, i, typ))
lineF(p, cpsStmts, "$#($#);$n", [decl, params]) if params == nil:
lineF(p, cpsStmts, "$#;$n", [decl])
else:
lineF(p, cpsStmts, "$#($#);$n", [decl, params])
else: else:
initLocExprSingleUse(p, value, tmp) initLocExprSingleUse(p, value, tmp)
lineF(p, cpsStmts, "$# = $#;$n", [decl, tmp.rdLoc]) lineF(p, cpsStmts, "$# = $#;$n", [decl, tmp.rdLoc])

View file

@ -1,6 +1,7 @@
discard """ discard """
targets: "cpp" targets: "cpp"
output: '''6.0''' output: '''6.0
0'''
""" """
# bug #4730 # bug #4730
@ -20,3 +21,16 @@ proc main =
echo v[0] echo v[0]
main() main()
#------------
#bug #6837
type StdString {.importCpp: "std::string", header: "<string>", byref.} = object
proc initString(): StdString {.constructor, importCpp: "std::string(@)", header: "<string>".}
proc size(this: var StdString): csize {.importCpp: "size", header: "<string>".}
proc f(): csize =
var myString: StdString = initString()
return myString.size()
echo f()