mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Rewrite ClosureScopeAnalysis for generality.
Handle recursive non-escaping local functions. Previously, it was thought that recursion would force a closure to be escaping. This is not necessarilly true. Update AccessEnforcementSelection to conservatively handle closure cycles. Fixes rdar://88726092 (Compiler hangs when building)
This commit is contained in:
@@ -169,6 +169,10 @@ public:
|
||||
FOREACH_IMPL_RETURN(getCalleeFunction());
|
||||
}
|
||||
|
||||
bool isCalleeDynamicallyReplaceable() const {
|
||||
FOREACH_IMPL_RETURN(isCalleeDynamicallyReplaceable());
|
||||
}
|
||||
|
||||
/// Return the referenced function if the callee is a function_ref
|
||||
/// instruction.
|
||||
SILFunction *getReferencedFunctionOrNull() const {
|
||||
|
||||
Reference in New Issue
Block a user