Skip to content

Commit db0b802

Browse files
authored
Re-enable DI test that uses ObjCBool (#24214)
Disabled in c1a21d2 because my SIL test was too specific for DavidS's ObjCBool changes. rdar://problem/49942212
1 parent 980add9 commit db0b802

File tree

1 file changed

+18
-25
lines changed

1 file changed

+18
-25
lines changed

test/SILOptimizer/definite_init_failable_initializers_objc.swift

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// RUN: %target-swift-frontend -emit-sil -disable-objc-attr-requires-foundation-module %s | %FileCheck %s
22

33
// REQUIRES: objc_interop
4-
// REQUIRES: rdar49942212
54

65
import ObjectiveC
76

@@ -98,52 +97,46 @@ class Cat : FakeNSObject {
9897
// CHECK-NEXT: cond_br [[COND]], bb1, bb2
9998

10099
// CHECK: bb1:
101-
// CHECK-NEXT: br bb8
102-
103-
// CHECK: bb3:
104-
// CHECK: br bb5
105-
106-
// CHECK: bb4:
107-
// CHECK: br bb5
108-
109-
// CHECK: bb5
100+
// CHECK-NEXT: br [[ERROR_BRANCH:bb[0-9]+]]
101+
102+
// CHECK: bb{{[0-9]+}}:
110103
// CHECK: [[SELF_INIT:%.+]] = objc_method %2 : $Cat, #Cat.init!initializer.1.foreign : (Cat.Type) -> (Int, Bool) -> Cat?
111-
// 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>
112105
// CHECK: [[COND:%.+]] = select_enum [[NEW_OPT_SELF]] : $Optional<Cat>
113-
// 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]+]]
114107

115-
// CHECK: bb6:
108+
// CHECK: [[RELEASE_THEN_ERROR_BRANCH]]:
116109
// CHECK-NEXT: release_value [[NEW_OPT_SELF]]
117-
// CHECK-NEXT: br bb8
110+
// CHECK-NEXT: br [[ERROR_BRANCH]]
118111

119-
// CHECK: bb7:
112+
// CHECK: [[SUCCESS_BRANCH]]:
120113
// CHECK-NEXT: [[NEW_SELF:%.+]] = unchecked_enum_data [[NEW_OPT_SELF]] : $Optional<Cat>, #Optional.some!enumelt.1
121114
// CHECK-NEXT: store [[NEW_SELF]] to [[SELF_BOX]] : $*Cat
122115
// TODO: Once we re-enable arbitrary take promotion, this retain and the associated destroy_addr will go away.
123116
// CHECK-NEXT: strong_retain [[NEW_SELF]]
124117
// CHECK-NEXT: [[RESULT:%.+]] = enum $Optional<Cat>, #Optional.some!enumelt.1, [[NEW_SELF]] : $Cat
125118
// CHECK-NEXT: destroy_addr [[SELF_BOX]]
126119
// CHECK-NEXT: dealloc_stack [[SELF_BOX]] : $*Cat
127-
// CHECK-NEXT: br bb12([[RESULT]] : $Optional<Cat>)
120+
// CHECK-NEXT: br [[RESULT_BRANCH:bb[0-9]+]]([[RESULT]] : $Optional<Cat>)
128121

129-
// CHECK: bb8:
122+
// CHECK: [[ERROR_BRANCH]]:
130123
// CHECK-NEXT: [[COND:%.+]] = load [[HAS_RUN_INIT_BOX]] : $*Builtin.Int1
131-
// 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]+]]
132125

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

136-
// CHECK: bb10:
129+
// CHECK: [[ERROR_WITH_DESTROY_BRANCH]]:
137130
// CHECK-NEXT: [[MOST_DERIVED_TYPE:%.+]] = value_metatype $@thick Cat.Type, %2 : $Cat
138131
// CHECK-NEXT: dealloc_partial_ref %2 : $Cat, [[MOST_DERIVED_TYPE]] : $@thick Cat.Type
139-
// CHECK-NEXT: br bb11
132+
// CHECK-NEXT: br [[ERROR_CLEANUP_BRANCH]]
140133

141-
// CHECK: bb11:
134+
// CHECK: [[ERROR_CLEANUP_BRANCH]]:
142135
// CHECK-NEXT: dealloc_stack [[SELF_BOX]] : $*Cat
143136
// CHECK-NEXT: [[NIL_RESULT:%.+]] = enum $Optional<Cat>, #Optional.none!enumelt
144-
// CHECK-NEXT: br bb12([[NIL_RESULT]] : $Optional<Cat>)
137+
// CHECK-NEXT: br [[RESULT_BRANCH]]([[NIL_RESULT]] : $Optional<Cat>)
145138

146-
// CHECK: bb12([[RESULT:%.+]] : $Optional<Cat>):
139+
// CHECK: [[RESULT_BRANCH]]([[RESULT:%.+]] : $Optional<Cat>):
147140
// CHECK-NEXT: dealloc_stack [[HAS_RUN_INIT_BOX]] : $*Builtin.Int1
148141
// CHECK-NEXT: return [[RESULT]] : $Optional<Cat>
149142

0 commit comments

Comments
 (0)