File tree Expand file tree Collapse file tree 2 files changed +11
-4
lines changed Expand file tree Collapse file tree 2 files changed +11
-4
lines changed Original file line number Diff line number Diff line change @@ -184,8 +184,7 @@ namespace swift {
184
184
bool DisableAvailabilityChecking = false ;
185
185
186
186
// / Optimization mode for unavailable declarations.
187
- UnavailableDeclOptimization UnavailableDeclOptimizationMode =
188
- UnavailableDeclOptimization::Stub;
187
+ llvm::Optional<UnavailableDeclOptimization> UnavailableDeclOptimizationMode;
189
188
190
189
// / Causes the compiler to use weak linkage for symbols belonging to
191
190
// / declarations introduced at the deployment target.
Original file line number Diff line number Diff line change @@ -323,10 +323,18 @@ static bool isUnconditionallyUnavailable(const Decl *D) {
323
323
return false ;
324
324
}
325
325
326
+ static UnavailableDeclOptimization
327
+ getEffectiveUnavailableDeclOptimization (ASTContext &ctx) {
328
+ if (ctx.LangOpts .UnavailableDeclOptimizationMode .has_value ())
329
+ return *ctx.LangOpts .UnavailableDeclOptimizationMode ;
330
+
331
+ return UnavailableDeclOptimization::Stub;
332
+ }
333
+
326
334
bool Decl::isAvailableDuringLowering () const {
327
335
// Unconditionally unavailable declarations should be skipped during lowering
328
336
// when -unavailable-decl-optimization=complete is specified.
329
- if (getASTContext (). LangOpts . UnavailableDeclOptimizationMode !=
337
+ if (getEffectiveUnavailableDeclOptimization ( getASTContext ()) !=
330
338
UnavailableDeclOptimization::Complete)
331
339
return true ;
332
340
@@ -339,7 +347,7 @@ bool Decl::isAvailableDuringLowering() const {
339
347
bool Decl::requiresUnavailableDeclABICompatibilityStubs () const {
340
348
// Code associated with unavailable declarations should trap at runtime if
341
349
// -unavailable-decl-optimization=stub is specified.
342
- if (getASTContext (). LangOpts . UnavailableDeclOptimizationMode !=
350
+ if (getEffectiveUnavailableDeclOptimization ( getASTContext ()) !=
343
351
UnavailableDeclOptimization::Stub)
344
352
return false ;
345
353
You can’t perform that action at this time.
0 commit comments