@@ -131,13 +131,15 @@ func testNSObjectInterpolation(nsArray: NSArray) {
131
131
// TODO: check why the ARC optimizer cannot eliminate the many retain/release pairs here.
132
132
// CHECK: entry:
133
133
// CHECK-NEXT: bitcast %TSo7NSArrayC* %0 to i8*
134
+ // CHECK-NEXT: [[COPY:%.+]] = tail call i8* @llvm.objc.retain
134
135
// CHECK-NEXT: [[NSARRAY_ARG:%.+]] = tail call i8* @llvm.objc.retain
135
136
// CHECK: tail call swiftcc i1 @"${{.*}}isLoggingEnabled{{.*}}"()
136
137
// CHECK-NEXT: br i1 {{%.*}}, label %[[ENABLED:[0-9]+]], label %[[NOT_ENABLED:[0-9]+]]
137
138
138
139
// CHECK: [[NOT_ENABLED]]:
139
140
// CHECK-NEXT: tail call void @swift_release
140
141
// CHECK-NEXT: tail call void @llvm.objc.release
142
+ // CHECK-NEXT: tail call void @llvm.objc.release
141
143
// CHECK: br label %[[EXIT:[0-9]+]]
142
144
143
145
// CHECK: [[ENABLED]]:
@@ -167,6 +169,7 @@ func testNSObjectInterpolation(nsArray: NSArray) {
167
169
// CHECK-NEXT: [[BITCASTED_SRC2:%.+]] = bitcast i8* {{.*}} to %TSo7NSArrayC*
168
170
// CHECK-64-NEXT: store %TSo7NSArrayC* [[BITCASTED_SRC2]], %TSo7NSArrayC** [[BITCASTED_DEST2]], align 8
169
171
// CHECK-32-NEXT: store %TSo7NSArrayC* [[BITCASTED_SRC2]], %TSo7NSArrayC** [[BITCASTED_DEST2]], align 4
172
+ // CHECK-NEXT: tail call void @llvm.objc.release(i8* [[NSARRAY_ARG]])
170
173
// CHECK-64: tail call swiftcc void @"${{.*}}_os_log_impl_test{{.*}}"({{.*}}, {{.*}}, {{.*}}, {{.*}}, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @{{.*}}, i64 0, i64 0), i8* {{(nonnull )?}}[[BUFFER]], i32 12)
171
174
// CHECK-32: tail call swiftcc void @"${{.*}}_os_log_impl_test{{.*}}"({{.*}}, {{.*}}, {{.*}}, {{.*}}, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @{{.*}}, i32 0, i32 0), i8* {{(nonnull )?}}[[BUFFER]], i32 8)
172
175
// CHECK: [[BITCASTED_OBJ_STORAGE:%.+]] = bitcast i8* [[OBJ_STORAGE]] to %swift.opaque*
0 commit comments