@@ -14,10 +14,11 @@ public class MyGizmo {
14
14
gizmo = Gizmo ( )
15
15
}
16
16
17
- // CHECK-LABEL: sil {{.*}} @$s8outliner7MyGizmoC11usePropertyyyF :
18
- // CHECK: [[P_FUN :%.*]] = function_ref @$sSo5GizmoC14stringPropertySSSgvgToTepb_
19
- // CHECK: apply [[P_FUN ]]({{.*}}) : $@convention(thin) (Gizmo) -> @owned Optional<String>
17
+ // CHECK-LABEL: sil @$s8outliner7MyGizmoC11usePropertyyyF :
18
+ // CHECK: [[A_FUN :%.*]] = function_ref @$sSo5GizmoC14stringPropertySSSgvgToTeab_
19
+ // CHECK: apply [[A_FUN ]]({{.*}}) : $@convention(thin) (@in_guaranteed Gizmo) -> @owned Optional<String>
20
20
// CHECK-NOT: return
21
+ // CHECK: [[P_FUN:%.*]] = function_ref @$sSo5GizmoC14stringPropertySSSgvgToTepb_
21
22
// CHECK: apply [[P_FUN]]({{.*}}) : $@convention(thin) (Gizmo) -> @owned Optional<String>
22
23
// CHECK: return
23
24
// CHECK: } // end sil function '$s8outliner7MyGizmoC11usePropertyyyF'
@@ -65,6 +66,26 @@ public func testOutlining() {
65
66
// CHECK: switch_enum [[RES]]
66
67
// CHECK: } // end sil function '$s8outliner9dontCrash1ayyp_tF'
67
68
69
+ // CHECK-LABEL: sil shared [noinline] @$sSo5GizmoC14stringPropertySSSgvgToTeab_ : $@convention(thin) (@in_guaranteed Gizmo) -> @owned Optional<String>
70
+ // CHECK: bb0(%0 : $*Gizmo):
71
+ // CHECK: %1 = load %0 : $*Gizmo
72
+ // CHECK: %2 = objc_method %1 : $Gizmo, #Gizmo.stringProperty!getter.foreign : (Gizmo) -> () -> String?
73
+ // CHECK: %3 = apply %2(%1) : $@convention(objc_method) (Gizmo) -> @autoreleased Optional<NSString>
74
+ // CHECK: switch_enum %3 : $Optional<NSString>, case #Optional.some!enumelt: bb1, case #Optional.none!enumelt: bb2
75
+ // CHECK: bb1(%5 : $NSString):
76
+ // CHECK: %6 = function_ref @$sSS10FoundationE36_unconditionallyBridgeFromObjectiveCySSSo8NSStringCSgFZ : $@convention(method) (@guaranteed Optional<NSString>, @thin String.Type) -> @owned String
77
+ // CHECK: %7 = metatype $@thin String.Type
78
+ // CHECK: %8 = apply %6(%3, %7) : $@convention(method) (@guaranteed Optional<NSString>, @thin String.Type) -> @owned String
79
+ // CHECK: release_value %3 : $Optional<NSString>
80
+ // CHECK: %10 = enum $Optional<String>, #Optional.some!enumelt, %8 : $String
81
+ // CHECK: br bb3(%10 : $Optional<String>)
82
+ // CHECK: bb2:
83
+ // CHECK: %12 = enum $Optional<String>, #Optional.none!enumelt
84
+ // CHECK: br bb3(%12 : $Optional<String>)
85
+ // CHECK: bb3(%14 : $Optional<String>):
86
+ // CHECK: return %14 : $Optional<String>
87
+ // CHECK: } // end sil function '$sSo5GizmoC14stringPropertySSSgvgToTeab_'
88
+
68
89
// CHECK-LABEL: sil shared [noinline] @$sSo5GizmoC14stringPropertySSSgvgToTepb_ : $@convention(thin) (Gizmo) -> @owned Optional<String>
69
90
// CHECK: bb0(%0 : $Gizmo):
70
91
// CHECK: %1 = objc_method %0 : $Gizmo, #Gizmo.stringProperty!getter.foreign : (Gizmo) -> () -> String?
0 commit comments