@@ -233,12 +233,13 @@ bb3:
233233// CHECK: bb1:
234234// CHECK-NEXT: [[COPY:%.*]] = copy_value [[OUTERCOPY]] : $C
235235// CHECK-NEXT: apply %{{.*}}([[COPY]]) : $@convention(thin) (@owned C) -> ()
236+ // CHECK-NEXT: destroy_value %0 : $C
236237// CHECK-NEXT: br bb3
237238// CHECK: bb2:
239+ // CHECK-NEXT: destroy_value %0 : $C
238240// CHECK-NEXT: br bb3
239241// CHECK: bb3:
240242// CHECK-NEXT: destroy_value [[OUTERCOPY]] : $C
241- // CHECK-NEXT: destroy_value %0 : $C
242243// CHECK-LABEL: } // end sil function 'testLocalBorrowPostDomDestroy'
243244sil [ossa] @testLocalBorrowPostDomDestroy : $@convention(thin) (@owned C) -> () {
244245bb0(%0 : @owned $C):
@@ -274,13 +275,14 @@ bb3:
274275// CHECK: bb1:
275276// CHECK-NEXT: apply %{{.*}}([[OUTERCOPY]]) : $@convention(thin) (@guaranteed C) -> ()
276277// CHECK-NEXT: apply %{{.*}}([[OUTERCOPY]]) : $@convention(thin) (@owned C) -> ()
278+ // CHECK-NEXT: destroy_value %0 : $C
277279// CHECK-NEXT: br bb3
278280// CHECK: bb2:
279281// CHECK-NEXT: apply %{{.*}}([[OUTERCOPY]]) : $@convention(thin) (@guaranteed C) -> ()
282+ // CHECK-NEXT: destroy_value %0 : $C
280283// CHECK-NEXT: destroy_value [[OUTERCOPY]] : $C
281284// CHECK-NEXT: br bb3
282285// CHECK: bb3:
283- // CHECK-NEXT: destroy_value %0 : $C
284286// CHECK-LABEL: } // end sil function 'testLocalBorrowNoPostDomDestroy'
285287sil [ossa] @testLocalBorrowNoPostDomDestroy : $@convention(thin) (@owned C) -> () {
286288bb0(%0 : @owned $C):
@@ -316,17 +318,18 @@ bb3:
316318// CHECK-NEXT: apply %{{.*}}([[OUTERCOPY]]) : $@convention(thin) (@guaranteed C) -> ()
317319// CHECK-NEXT: [[ARGCOPY:%.*]] = copy_value [[OUTERCOPY]] : $C
318320// CHECK-NEXT: apply %2([[OUTERCOPY]], [[ARGCOPY:%.*]]) : $@convention(thin) (@owned C, @owned C) -> ()
321+ // CHECK-NEXT: destroy_value %0 : $C
319322// CHECK-NEXT: br bb3
320323// CHECK: bb2:
321324// CHECK-NEXT: apply %{{.*}}([[OUTERCOPY]]) : $@convention(thin) (@guaranteed C) -> ()
322325//
323326// This copy would be eliminated if the outer lifetime were also canonicalized (no unchecked_ownership_conversion)
327+ // CHECK-NEXT: destroy_value %0 : $C
324328// CHECK-NEXT: [[COPY2:%.*]] = copy_value [[OUTERCOPY]] : $C
325329// CHECK-NEXT: destroy_value [[COPY2]] : $C
326330// CHECK-NEXT: destroy_value %4 : $C
327331// CHECK-NEXT: br bb3
328332// CHECK: bb3:
329- // CHECK-NEXT: destroy_value %0 : $C
330333// CHECK-LABEL: } // end sil function 'testLocalBorrowDoubleConsume'
331334sil [ossa] @testLocalBorrowDoubleConsume : $@convention(thin) (@owned C) -> () {
332335bb0(%0 : @owned $C):
0 commit comments