mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Distinguish between withoutActuallyEscaping and passing @noescape
Objective C closures when reporting that a closure has escaped rdar://39682865
This commit is contained in:
@@ -1616,12 +1616,22 @@ bool SILDeserializer::readSILInstruction(SILFunction *Fn, SILBasicBlock *BB,
|
||||
REFCOUNTING_INSTRUCTION(UnownedRelease)
|
||||
UNARY_INSTRUCTION(IsUnique)
|
||||
UNARY_INSTRUCTION(IsUniqueOrPinned)
|
||||
UNARY_INSTRUCTION(IsEscapingClosure)
|
||||
UNARY_INSTRUCTION(AbortApply)
|
||||
UNARY_INSTRUCTION(EndApply)
|
||||
#undef UNARY_INSTRUCTION
|
||||
#undef REFCOUNTING_INSTRUCTION
|
||||
|
||||
case SILInstructionKind::IsEscapingClosureInst: {
|
||||
assert(RecordKind == SIL_ONE_OPERAND && "Layout should be OneOperand.");
|
||||
unsigned verificationType = Attr;
|
||||
ResultVal = Builder.createIsEscapingClosure(
|
||||
Loc,
|
||||
getLocalValue(
|
||||
ValID, getSILType(MF->getType(TyID), (SILValueCategory)TyCategory)),
|
||||
verificationType);
|
||||
break;
|
||||
}
|
||||
|
||||
case SILInstructionKind::DestructureTupleInst: {
|
||||
assert(RecordKind == SIL_ONE_OPERAND && "Layout should be OneOperand.");
|
||||
SILValue Operand = getLocalValue(
|
||||
|
||||
Reference in New Issue
Block a user