1
- // RUN: %target-typecheck-verify-swift
1
+ // RUN: %target-typecheck-verify-swift -target x86_64-apple-macosx10.52
2
2
3
- // RUN: %target-swift-emit-silgen -emit-sorted-sil -o %t.fragile.sil %s
3
+ // RUN: %target-swift-emit-silgen -target x86_64-apple-macosx10.52 - emit-sorted-sil -o %t.fragile.sil %s
4
4
// RUN: %FileCheck %s < %t.fragile.sil
5
5
// RUN: %FileCheck -check-prefix NEGATIVE %s < %t.fragile.sil
6
6
7
- // RUN: %target-swift-emit-silgen -emit-sorted-sil -enable-resilience -o %t.resilient.sil %s
7
+ // RUN: %target-swift-emit-silgen -target x86_64-apple-macosx10.52 - emit-sorted-sil -enable-resilience -o %t.resilient.sil %s
8
8
// RUN: %FileCheck %s < %t.resilient.sil
9
9
// RUN: %FileCheck -check-prefix NEGATIVE %s < %t.resilient.sil
10
10
@@ -19,15 +19,20 @@ public enum E: Int {
19
19
20
20
case normal = - 1000
21
21
22
- @available ( macOS 10 . 8 , * )
22
+ @available ( macOS 10 . 51 , * )
23
23
case alwaysAvailable = - 2000
24
24
25
- @available ( macOS 500 . 600 . 700 , * )
25
+ @available ( macOS 10 . 55 , * )
26
26
case potentiallyUnavailable = - 3000
27
27
28
28
@available ( macOS, unavailable)
29
29
case neverAvailable = - 4000
30
30
31
+ @available ( macOS, obsoleted: 10.99 )
32
+ case notObsoleteYet = - 5000
33
+
34
+ @available ( macOS, obsoleted: 10.51 )
35
+ case nowObsolete = - 6000
31
36
}
32
37
33
38
// CHECK-LABEL: sil {{(\[serialized\] )?}}[ossa] @$s4main1EO8rawValueACSgSi_tcfC
@@ -41,10 +46,17 @@ public enum E: Int {
41
46
// CHECK: integer_literal $Builtin.IntLiteral, -3000
42
47
// CHECK: cond_br {{[^,]+}}, [[potentiallyUnavailable:bb[0-9]+]]
43
48
49
+ // CHECK: integer_literal $Builtin.IntLiteral, -5000
50
+ // CHECK: cond_br {{[^,]+}}, [[notObsoleteYet:bb[0-9]+]]
51
+
52
+ // CHECK: [[notObsoleteYet]]:
53
+ // CHECK-NOT: function_ref @$ss26_stdlib_isOSVersionAtLeastyBi1_Bw_BwBwtF
54
+ // CHECK: {{enum \$E|inject_enum_addr %[0-9]+ : \$\*E}}, #E.notObsoleteYet!enumelt
55
+
44
56
// CHECK: [[potentiallyUnavailable]]:
45
- // CHECK-NEXT: integer_literal $Builtin.Word, 500
46
- // CHECK-NEXT: integer_literal $Builtin.Word, 600
47
- // CHECK-NEXT: integer_literal $Builtin.Word, 700
57
+ // CHECK-NEXT: integer_literal $Builtin.Word, 10
58
+ // CHECK-NEXT: integer_literal $Builtin.Word, 55
59
+ // CHECK-NEXT: integer_literal $Builtin.Word, 0
48
60
// CHECK: function_ref @$ss26_stdlib_isOSVersionAtLeastyBi1_Bw_BwBwtF
49
61
// CHECK: cond_br {{[^,]+}}, [[potentiallyUnavailable_newEnough:bb[0-9]+]],
50
62
@@ -67,5 +79,14 @@ public enum E: Int {
67
79
// CHECK: end sil function '$s4main1EO8rawValueSivg'
68
80
69
81
// NEGATIVE-LABEL: sil {{(\[serialized\] )?}}[ossa] @$s4main1EO8rawValueACSgSi_tcfC
82
+
83
+ // Should not try to match neverAvailable's raw value
70
84
// NEGATIVE-NOT: integer_literal $Builtin.IntLiteral, -4000
85
+
86
+ // Should not try to match nowObsolete's raw value
87
+ // NEGATIVE-NOT: integer_literal $Builtin.IntLiteral, -6000
88
+
89
+ // Should not have a version check for notObsoleteYet
90
+ // NEGATIVE-NOT: integer_literal $Builtin.Word, 99
91
+
71
92
// NEGATIVE: end sil function '$s4main1EO8rawValueACSgSi_tcfC'
0 commit comments