fixes #6037
This commit is contained in:
parent
440d100595
commit
b6307dded3
1 changed files with 8 additions and 1 deletions
|
|
@ -2126,7 +2126,14 @@ proc expr(p: BProc, n: PNode, d: var TLoc) =
|
||||||
if n.sons[0].kind != nkEmpty:
|
if n.sons[0].kind != nkEmpty:
|
||||||
genLineDir(p, n)
|
genLineDir(p, n)
|
||||||
var a: TLoc
|
var a: TLoc
|
||||||
initLocExpr(p, n.sons[0], a)
|
if n[0].kind in nkCallKinds:
|
||||||
|
# bug #6037: do not assign to a temp in C++ mode:
|
||||||
|
incl a.flags, lfSingleUse
|
||||||
|
genCall(p, n[0], a)
|
||||||
|
if lfSingleUse notin a.flags:
|
||||||
|
line(p, cpsStmts, a.r & ";" & tnl)
|
||||||
|
else:
|
||||||
|
initLocExpr(p, n.sons[0], a)
|
||||||
of nkAsmStmt: genAsmStmt(p, n)
|
of nkAsmStmt: genAsmStmt(p, n)
|
||||||
of nkTryStmt:
|
of nkTryStmt:
|
||||||
if p.module.compileToCpp and optNoCppExceptions notin gGlobalOptions:
|
if p.module.compileToCpp and optNoCppExceptions notin gGlobalOptions:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue