mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-02 03:02:31 +00:00
fixes an issue where sometimes wasMoved produced bad codegen for cpp (#22587)
This commit is contained in:
@@ -2324,7 +2324,10 @@ proc genMove(p: BProc; n: PNode; d: var TLoc) =
|
||||
s = "$1, $1Len_0" % [rdLoc(a)]
|
||||
linefmt(p, cpsStmts, "$1($2);$n", [rdLoc(b), s])
|
||||
else:
|
||||
linefmt(p, cpsStmts, "$1($2);$n", [rdLoc(b), byRefLoc(p, a)])
|
||||
if p.module.compileToCpp:
|
||||
linefmt(p, cpsStmts, "$1($2);$n", [rdLoc(b), rdLoc(a)])
|
||||
else:
|
||||
linefmt(p, cpsStmts, "$1($2);$n", [rdLoc(b), byRefLoc(p, a)])
|
||||
else:
|
||||
let flags = if not canMove(p, n[1], d): {needToCopy} else: {}
|
||||
genAssignment(p, d, a, flags)
|
||||
|
||||
Reference in New Issue
Block a user