Skip to content

Commit 4026a48

Browse files
jrose-appleCatfish-Man
authored andcommitted
Re-enable DI test that uses ObjCBool (swiftlang#24214)
Disabled in c1a21d2 because my SIL test was too specific for DavidS's ObjCBool changes. rdar://problem/49942212 (cherry picked from commit db0b802)
1 parent 1a794b7 commit 4026a48

File tree

1 file changed

+18
-24
lines changed

1 file changed

+18
-24
lines changed

test/SILOptimizer/definite_init_failable_initializers_objc.swift

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -97,52 +97,46 @@ class Cat : FakeNSObject {
9797
// CHECK-NEXT: cond_br [[COND]], bb1, bb2
9898

9999
// 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]+}}:
109103
// 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>
111105
// 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]+]]
113107

114-
// CHECK: bb6:
108+
// CHECK: [[RELEASE_THEN_ERROR_BRANCH]]:
115109
// CHECK-NEXT: release_value [[NEW_OPT_SELF]]
116-
// CHECK-NEXT: br bb8
110+
// CHECK-NEXT: br [[ERROR_BRANCH]]
117111

118-
// CHECK: bb7:
112+
// CHECK: [[SUCCESS_BRANCH]]:
119113
// CHECK-NEXT: [[NEW_SELF:%.+]] = unchecked_enum_data [[NEW_OPT_SELF]] : $Optional<Cat>, #Optional.some!enumelt.1
120114
// CHECK-NEXT: store [[NEW_SELF]] to [[SELF_BOX]] : $*Cat
121115
// TODO: Once we re-enable arbitrary take promotion, this retain and the associated destroy_addr will go away.
122116
// CHECK-NEXT: strong_retain [[NEW_SELF]]
123117
// CHECK-NEXT: [[RESULT:%.+]] = enum $Optional<Cat>, #Optional.some!enumelt.1, [[NEW_SELF]] : $Cat
124118
// CHECK-NEXT: destroy_addr [[SELF_BOX]]
125119
// 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>)
127121

128-
// CHECK: bb8:
122+
// CHECK: [[ERROR_BRANCH]]:
129123
// 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]+]]
131125

132-
// CHECK: bb9:
133-
// CHECK-NEXT: br bb11
126+
// CHECK: [[ERROR_WITHOUT_DESTROY_BRANCH]]:
127+
// CHECK-NEXT: br [[ERROR_CLEANUP_BRANCH:bb[0-9]+]]
134128

135-
// CHECK: bb10:
129+
// CHECK: [[ERROR_WITH_DESTROY_BRANCH]]:
136130
// CHECK-NEXT: [[MOST_DERIVED_TYPE:%.+]] = value_metatype $@thick Cat.Type, %2 : $Cat
137131
// 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]]
139133

140-
// CHECK: bb11:
134+
// CHECK: [[ERROR_CLEANUP_BRANCH]]:
141135
// CHECK-NEXT: dealloc_stack [[SELF_BOX]] : $*Cat
142136
// 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>)
144138

145-
// CHECK: bb12([[RESULT:%.+]] : $Optional<Cat>):
139+
// CHECK: [[RESULT_BRANCH]]([[RESULT:%.+]] : $Optional<Cat>):
146140
// CHECK-NEXT: dealloc_stack [[HAS_RUN_INIT_BOX]] : $*Builtin.Int1
147141
// CHECK-NEXT: return [[RESULT]] : $Optional<Cat>
148142

0 commit comments

Comments
 (0)