@@ -1044,6 +1044,7 @@ static bool parseDeclSILOptional(bool *isTransparent,
10441044 IsRuntimeAccessible_t *isRuntimeAccessible,
10451045 ForceEnableLexicalLifetimes_t *forceEnableLexicalLifetimes,
10461046 UseStackForPackMetadata_t *useStackForPackMetadata,
1047+ bool *hasUnsafeNonEscapableResult,
10471048 IsExactSelfClass_t *isExactSelfClass,
10481049 SILFunction **dynamicallyReplacedFunction,
10491050 SILFunction **usedAdHocRequirementWitness,
@@ -1090,6 +1091,9 @@ static bool parseDeclSILOptional(bool *isTransparent,
10901091 else if (useStackForPackMetadata &&
10911092 SP.P .Tok .getText () == " no_onstack_pack_metadata" )
10921093 *useStackForPackMetadata = DoNotUseStackForPackMetadata;
1094+ else if (hasUnsafeNonEscapableResult &&
1095+ SP.P .Tok .getText () == " unsafe_nonescapable_result" )
1096+ *useStackForPackMetadata = DoNotUseStackForPackMetadata;
10931097 else if (isExactSelfClass && SP.P .Tok .getText () == " exact_self_class" )
10941098 *isExactSelfClass = IsExactSelfClass;
10951099 else if (isCanonical && SP.P .Tok .getText () == " canonical" )
@@ -7201,6 +7205,7 @@ bool SILParserState::parseDeclSIL(Parser &P) {
72017205 ForceEnableLexicalLifetimes_t forceEnableLexicalLifetimes =
72027206 DoNotForceEnableLexicalLifetimes;
72037207 UseStackForPackMetadata_t useStackForPackMetadata = DoUseStackForPackMetadata;
7208+ bool hasUnsafeNonEscapableResult = false ;
72047209 IsExactSelfClass_t isExactSelfClass = IsNotExactSelfClass;
72057210 bool hasOwnershipSSA = false ;
72067211 IsThunk_t isThunk = IsNotThunk;
@@ -7226,6 +7231,7 @@ bool SILParserState::parseDeclSIL(Parser &P) {
72267231 &isTransparent, &isSerialized, &isCanonical, &hasOwnershipSSA,
72277232 &isThunk, &isDynamic, &isDistributed, &isRuntimeAccessible,
72287233 &forceEnableLexicalLifetimes, &useStackForPackMetadata,
7234+ &hasUnsafeNonEscapableResult,
72297235 &isExactSelfClass, &DynamicallyReplacedFunction,
72307236 &AdHocWitnessFunction, &objCReplacementFor, &specialPurpose,
72317237 &inlineStrategy, &optimizationMode, &perfConstr, &markedAsUsed,
@@ -7266,6 +7272,8 @@ bool SILParserState::parseDeclSIL(Parser &P) {
72667272 FunctionState.F ->setForceEnableLexicalLifetimes (
72677273 forceEnableLexicalLifetimes);
72687274 FunctionState.F ->setUseStackForPackMetadata (useStackForPackMetadata);
7275+ FunctionState.F ->setHasUnsafeNonEscapableResult (
7276+ hasUnsafeNonEscapableResult);
72697277 FunctionState.F ->setIsExactSelfClass (isExactSelfClass);
72707278 FunctionState.F ->setDynamicallyReplacedFunction (
72717279 DynamicallyReplacedFunction);
0 commit comments