mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
It should no longer be necessary to provide an `@_alwaysEmitIntoClient` version of `_diagnoseUnavailableCodeReached()`. This workaround was originally added to provide compatibility with projects that were misconfigured to compile against a newer stdlib but link against an older one. Resolves rdar://119892482.
17 lines
812 B
Swift
17 lines
812 B
Swift
// RUN: %target-swift-emit-sil -module-name Test -parse-as-library %s -verify -unavailable-decl-optimization=stub | %FileCheck %s --check-prefixes=CHECK
|
|
|
|
public struct S {}
|
|
|
|
// CHECK-LABEL: sil{{.*}}@$s4Test15unavailableFuncAA1SVyF
|
|
// CHECK: [[FNREF:%.*]] = function_ref @$[[DIAGNOSEFN:(ss31_diagnoseUnavailableCodeReacheds5NeverOyF|ss31_diagnoseUnavailableCodeReacheds5NeverOyFTwb)]] : $@convention(thin) () -> Never
|
|
// CHECK-NEXT: [[APPLY:%.*]] = apply [[FNREF]]()
|
|
// CHECK-NEXT: unreachable
|
|
// CHECK-NEXT: } // end sil function '$s4Test15unavailableFuncAA1SVyF'
|
|
@available(*, unavailable)
|
|
public func unavailableFunc() -> S {
|
|
|
|
// No warning should be produced for this code even though the compiler
|
|
// inserted call to _diagnoseUnavailableCodeReached() makes it unreachable.
|
|
return S()
|
|
}
|