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 {
184184 bool DisableAvailabilityChecking = false ;
185185
186186 // / Optimization mode for unavailable declarations.
187- UnavailableDeclOptimization UnavailableDeclOptimizationMode =
188- UnavailableDeclOptimization::Stub;
187+ llvm::Optional<UnavailableDeclOptimization> UnavailableDeclOptimizationMode;
189188
190189 // / Causes the compiler to use weak linkage for symbols belonging to
191190 // / 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) {
323323 return false ;
324324}
325325
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+
326334bool Decl::isAvailableDuringLowering () const {
327335 // Unconditionally unavailable declarations should be skipped during lowering
328336 // when -unavailable-decl-optimization=complete is specified.
329- if (getASTContext (). LangOpts . UnavailableDeclOptimizationMode !=
337+ if (getEffectiveUnavailableDeclOptimization ( getASTContext ()) !=
330338 UnavailableDeclOptimization::Complete)
331339 return true ;
332340
@@ -339,7 +347,7 @@ bool Decl::isAvailableDuringLowering() const {
339347bool Decl::requiresUnavailableDeclABICompatibilityStubs () const {
340348 // Code associated with unavailable declarations should trap at runtime if
341349 // -unavailable-decl-optimization=stub is specified.
342- if (getASTContext (). LangOpts . UnavailableDeclOptimizationMode !=
350+ if (getEffectiveUnavailableDeclOptimization ( getASTContext ()) !=
343351 UnavailableDeclOptimization::Stub)
344352 return false ;
345353
You can’t perform that action at this time.
0 commit comments