@@ -189,7 +189,7 @@ struct X : P { func p() {} }
189189struct Y : P { func p( ) { } }
190190struct Z : P { func p( ) { } }
191191
192- // CHECK-LABEL: sil hidden [ossa] @$s10switch_var05test_B2_41pyAA1P_p_tF
192+ // CHECK-LABEL: sil hidden [ossa] @$s10switch_var05test_B2_41pyAA1P_p_tF : $@convention(thin) (@in_guaranteed P) -> () {
193193func test_var_4( p p: P ) {
194194 // CHECK: function_ref @$s10switch_var3fooSiyF
195195 switch ( p, foo ( ) ) {
@@ -275,12 +275,14 @@ func test_var_4(p p: P) {
275275 // CHECK: tuple_element_addr [[READ]] : {{.*}}, 1
276276 // CHECK: function_ref @$s10switch_var1c1xySi_tF
277277 // CHECK: destroy_value [[ZADDR]]
278+ // CHECK-NEXT: destroy_addr [[PAIR]]
278279 // CHECK-NEXT: dealloc_stack [[PAIR]]
279280 // CHECK: br [[CONT]]
280281 c ( x: z. 1 )
281282
282283 // CHECK: [[DFLT_NO_CASE3]]:
283- // CHECK: destroy_value [[ZADDR]]
284+ // CHECK-NEXT: destroy_value [[ZADDR]]
285+ // CHECK-NOT: destroy_addr
284286 case ( _, var w) :
285287 // CHECK: [[PAIR_0:%.*]] = tuple_element_addr [[PAIR]] : $*(P, Int), 0
286288 // CHECK: [[WADDR:%.*]] = alloc_box ${ var Int }
@@ -289,9 +291,10 @@ func test_var_4(p p: P) {
289291 // CHECK: load [trivial] [[READ]]
290292 // CHECK: function_ref @$s10switch_var1d1xySi_tF
291293 // CHECK: destroy_value [[WADDR]]
292- // CHECK: destroy_addr [[PAIR_0]] : $*P
293- // CHECK: dealloc_stack [[PAIR]]
294- // CHECK: br [[CONT]]
294+ // CHECK-NEXT: destroy_addr [[PAIR_0]] : $*P
295+ // CHECK-NEXT: dealloc_stack [[PAIR]]
296+ // CHECK-NEXT: dealloc_stack
297+ // CHECK-NEXT: br [[CONT]]
295298 d ( x: w)
296299 }
297300 e ( )
0 commit comments