mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Fix SILMem2Reg while marking end_borrow of store_borrow as deinit point
Fixes rdar://99229461
This commit is contained in:
@@ -795,14 +795,15 @@ SILInstruction *StackAllocationPromoter::promoteAllocationInBlock(
|
||||
continue;
|
||||
}
|
||||
if (!runningVals.hasValue()) {
|
||||
assert(!deinitializationPoints[blockPromotingWithin]);
|
||||
deinitializationPoints[blockPromotingWithin] = inst;
|
||||
continue;
|
||||
}
|
||||
if (sbi->getSrc() != runningVals->value.stored) {
|
||||
continue;
|
||||
}
|
||||
// Mark storage as invalid and mark end_borrow as a deinit point.
|
||||
runningVals->isStorageValid = false;
|
||||
assert(!deinitializationPoints[blockPromotingWithin]);
|
||||
deinitializationPoints[blockPromotingWithin] = inst;
|
||||
if (!canEndLexicalLifetime(runningVals->value)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user