Skip to content

Commit 3243a87

Browse files
committed
clean up some of the initialization code to be more robust
1 parent 6aca5e5 commit 3243a87

File tree

1 file changed

+3
-8
lines changed

1 file changed

+3
-8
lines changed

lib/SILGen/SILGenDistributed.cpp

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,12 @@ static void initializeProperty(SILGenFunction &SGF, SILLocation loc,
7979
SGF.B.createCopyAddr(loc, value, fieldAddr, IsNotTake, IsInitialization);
8080
} else {
8181
if (value->getType().isAddress()) {
82-
value = SGF.B.createTrivialLoadOr(
83-
loc, value, LoadOwnershipQualifier::Take);
82+
SGF.emitSemanticLoadInto(loc, value, SGF.F.getTypeLowering(value->getType()),
83+
fieldAddr, SGF.getTypeLowering(loweredType), IsTake, IsInitialization);
8484
} else {
8585
value = SGF.B.emitCopyValueOperation(loc, value);
86-
}
87-
88-
SGF.B.emitStoreValueOperation(
86+
SGF.B.emitStoreValueOperation(
8987
loc, value, fieldAddr, StoreOwnershipQualifier::Init);
90-
91-
if (value->getType().isAddress()) {
92-
SGF.B.createDestroyAddr(loc, value);
9388
}
9489
}
9590
}

0 commit comments

Comments
 (0)