SILGen: Support +0 values in ManagedValue::forwardInto()

This commit is contained in:
Slava Pestov
2017-11-19 23:03:07 -05:00
parent 1460f6023a
commit afb771abfc

View File

@@ -110,10 +110,15 @@ SILValue ManagedValue::forward(SILGenFunction &SGF) const {
void ManagedValue::forwardInto(SILGenFunction &SGF, SILLocation loc,
SILValue address) {
if (!hasCleanup() && getOwnershipKind() != ValueOwnershipKind::Trivial)
return copyUnmanaged(SGF, loc).forwardInto(SGF, loc, address);
if (hasCleanup())
forwardCleanup(SGF);
auto &addrTL = SGF.getTypeLowering(address->getType());
SGF.emitSemanticStore(loc, getValue(), address, addrTL, IsInitialization);
SGF.emitSemanticStore(loc, getValue(), address,
addrTL, IsInitialization);
}
void ManagedValue::assignInto(SILGenFunction &SGF, SILLocation loc,