This commit is contained in:
Andreas Rumpf 2020-06-07 20:11:42 +02:00 • committed by GitHub
commit 419dbd573d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -277,8 +277,11 @@ proc canBeMoved(c: Con; t: PType): bool {.inline.} =
else: else:
result = t.attachedOps[attachedSink] != nil result = t.attachedOps[attachedSink] != nil
proc isNoInit(dest: PNode): bool {.inline.} =
result = dest.kind == nkSym and sfNoInit in dest.sym.flags
proc genSink(c: var Con; dest, ri: PNode): PNode = proc genSink(c: var Con; dest, ri: PNode): PNode =
if isUnpackedTuple(dest) or isFirstWrite(dest, c): if isUnpackedTuple(dest) or isFirstWrite(dest, c) or isNoInit(dest):
# optimize sink call into a bitwise memcopy # optimize sink call into a bitwise memcopy
result = newTree(nkFastAsgn, dest, ri) result = newTree(nkFastAsgn, dest, ri)
else: else: