@@ -97,52 +97,46 @@ class Cat : FakeNSObject {
97
97
// CHECK-NEXT: cond_br [[COND]], bb1, bb2
98
98
99
99
// CHECK: bb1:
100
- // CHECK-NEXT: br bb8
101
-
102
- // CHECK: bb3:
103
- // CHECK: br bb5
104
-
105
- // CHECK: bb4:
106
- // CHECK: br bb5
107
-
108
- // CHECK: bb5
100
+ // CHECK-NEXT: br [[ERROR_BRANCH:bb[0-9]+]]
101
+
102
+ // CHECK: bb{{[0-9]+}}:
109
103
// CHECK: [[SELF_INIT:%.+]] = objc_method %2 : $Cat, #Cat.init!initializer.1.foreign : (Cat.Type) -> (Int, Bool) -> Cat?
110
- // CHECK: [[NEW_OPT_SELF:%.+]] = apply [[SELF_INIT]]({{%.+}}, {{%.+}}, %2 ) : $@convention(objc_method) (Int, ObjCBool, @owned Cat) -> @owned Optional<Cat>
104
+ // CHECK: [[NEW_OPT_SELF:%.+]] = apply [[SELF_INIT]]({{%.+}}, {{%.+}}, {{%.+}} ) : $@convention(objc_method) (Int, ObjCBool, @owned Cat) -> @owned Optional<Cat>
111
105
// CHECK: [[COND:%.+]] = select_enum [[NEW_OPT_SELF]] : $Optional<Cat>
112
- // CHECK-NEXT: cond_br [[COND]], bb7, bb6
106
+ // CHECK-NEXT: cond_br [[COND]], [[SUCCESS_BRANCH:bb[0-9]+]], [[RELEASE_THEN_ERROR_BRANCH:bb[0-9]+]]
113
107
114
- // CHECK: bb6 :
108
+ // CHECK: [[RELEASE_THEN_ERROR_BRANCH]] :
115
109
// CHECK-NEXT: release_value [[NEW_OPT_SELF]]
116
- // CHECK-NEXT: br bb8
110
+ // CHECK-NEXT: br [[ERROR_BRANCH]]
117
111
118
- // CHECK: bb7 :
112
+ // CHECK: [[SUCCESS_BRANCH]] :
119
113
// CHECK-NEXT: [[NEW_SELF:%.+]] = unchecked_enum_data [[NEW_OPT_SELF]] : $Optional<Cat>, #Optional.some!enumelt.1
120
114
// CHECK-NEXT: store [[NEW_SELF]] to [[SELF_BOX]] : $*Cat
121
115
// TODO: Once we re-enable arbitrary take promotion, this retain and the associated destroy_addr will go away.
122
116
// CHECK-NEXT: strong_retain [[NEW_SELF]]
123
117
// CHECK-NEXT: [[RESULT:%.+]] = enum $Optional<Cat>, #Optional.some!enumelt.1, [[NEW_SELF]] : $Cat
124
118
// CHECK-NEXT: destroy_addr [[SELF_BOX]]
125
119
// CHECK-NEXT: dealloc_stack [[SELF_BOX]] : $*Cat
126
- // CHECK-NEXT: br bb12 ([[RESULT]] : $Optional<Cat>)
120
+ // CHECK-NEXT: br [[RESULT_BRANCH:bb[0-9]+]] ([[RESULT]] : $Optional<Cat>)
127
121
128
- // CHECK: bb8 :
122
+ // CHECK: [[ERROR_BRANCH]] :
129
123
// CHECK-NEXT: [[COND:%.+]] = load [[HAS_RUN_INIT_BOX]] : $*Builtin.Int1
130
- // CHECK-NEXT: cond_br [[COND]], bb9, bb10
124
+ // CHECK-NEXT: cond_br [[COND]], [[ERROR_WITHOUT_DESTROY_BRANCH:bb[0-9]+]], [[ERROR_WITH_DESTROY_BRANCH:bb[0-9]+]]
131
125
132
- // CHECK: bb9 :
133
- // CHECK-NEXT: br bb11
126
+ // CHECK: [[ERROR_WITHOUT_DESTROY_BRANCH]] :
127
+ // CHECK-NEXT: br [[ERROR_CLEANUP_BRANCH:bb[0-9]+]]
134
128
135
- // CHECK: bb10 :
129
+ // CHECK: [[ERROR_WITH_DESTROY_BRANCH]] :
136
130
// CHECK-NEXT: [[MOST_DERIVED_TYPE:%.+]] = value_metatype $@thick Cat.Type, %2 : $Cat
137
131
// CHECK-NEXT: dealloc_partial_ref %2 : $Cat, [[MOST_DERIVED_TYPE]] : $@thick Cat.Type
138
- // CHECK-NEXT: br bb11
132
+ // CHECK-NEXT: br [[ERROR_CLEANUP_BRANCH]]
139
133
140
- // CHECK: bb11 :
134
+ // CHECK: [[ERROR_CLEANUP_BRANCH]] :
141
135
// CHECK-NEXT: dealloc_stack [[SELF_BOX]] : $*Cat
142
136
// CHECK-NEXT: [[NIL_RESULT:%.+]] = enum $Optional<Cat>, #Optional.none!enumelt
143
- // CHECK-NEXT: br bb12 ([[NIL_RESULT]] : $Optional<Cat>)
137
+ // CHECK-NEXT: br [[RESULT_BRANCH]] ([[NIL_RESULT]] : $Optional<Cat>)
144
138
145
- // CHECK: bb12 ([[RESULT:%.+]] : $Optional<Cat>):
139
+ // CHECK: [[RESULT_BRANCH]] ([[RESULT:%.+]] : $Optional<Cat>):
146
140
// CHECK-NEXT: dealloc_stack [[HAS_RUN_INIT_BOX]] : $*Builtin.Int1
147
141
// CHECK-NEXT: return [[RESULT]] : $Optional<Cat>
148
142
0 commit comments