@@ -616,7 +616,9 @@ func genericProps(_ x: GenericClass<String>) {
616616 // CHECK: apply {{.*}}<String>([[ARG]]) : $@convention(method) <τ_0_0> (@guaranteed GenericClass<τ_0_0>) -> Int
617617 let _ = x. y
618618 // CHECK: [[Z:%.*]] = ref_element_addr [[ARG]] : $GenericClass<String>, #GenericClass.z
619- // CHECK: [[LOADED_Z:%.*]] = load [copy] [[Z]] : $*String
619+ // CHECK: [[Z_ACCESS:%.*]] = begin_access [read] [unsafe] [[Z]]
620+ // CHECK: [[LOADED_Z:%.*]] = load [copy] [[Z_ACCESS]] : $*String
621+ // CHECK: end_access [[Z_ACCESS]]
620622 // CHECK: destroy_value [[LOADED_Z]]
621623 // CHECK-NOT: destroy_value [[ARG]]
622624 let _ = x. z
@@ -626,7 +628,8 @@ func genericProps(_ x: GenericClass<String>) {
626628func genericPropsInGenericContext< U> ( _ x: GenericClass < U > ) {
627629 // CHECK: bb0([[ARG:%.*]] : @guaranteed $GenericClass<U>):
628630 // CHECK: [[Z:%.*]] = ref_element_addr [[ARG]] : $GenericClass<U>, #GenericClass.z
629- // CHECK: copy_addr [[Z]] {{.*}} : $*U
631+ // CHECK: [[Z_ACCESS:%.*]] = begin_access [read] [unsafe] [[Z]]
632+ // CHECK: copy_addr [[Z_ACCESS]] {{.*}} : $*U
630633 let _ = x. z
631634}
632635
@@ -642,7 +645,9 @@ class ClassWithLetProperty {
642645// CHECK: bb0([[ARG:%.*]] : @guaranteed $ClassWithLetProperty):
643646// CHECK-NEXT: debug_value
644647// CHECK-NEXT: [[PTR:%[0-9]+]] = ref_element_addr [[ARG]] : $ClassWithLetProperty, #ClassWithLetProperty.p
645- // CHECK-NEXT: [[VAL:%[0-9]+]] = load [trivial] [[PTR]] : $*Int
648+ // CHECK-NEXT: [[PTR_ACCESS:%.*]] = begin_access [read] [unsafe] [[PTR]]
649+ // CHECK-NEXT: [[VAL:%[0-9]+]] = load [trivial] [[PTR_ACCESS]] : $*Int
650+ // CHECK-NEXT: end_access [[PTR_ACCESS]]
646651// CHECK-NEXT: return [[VAL]] : $Int
647652
648653
@@ -670,15 +675,17 @@ class r19254812Derived: r19254812Base{
670675// Initialization of the pi field: no copy_values/releases.
671676// CHECK: [[SELF:%[0-9]+]] = load_borrow [[PB_BOX]] : $*r19254812Derived
672677// CHECK-NEXT: [[PIPTR:%[0-9]+]] = ref_element_addr [[SELF]] : $r19254812Derived, #r19254812Derived.pi
673- // CHECK-NEXT: assign {{.*}} to [[PIPTR]] : $*Double
678+ // CHECK-NEXT: [[PIPTR_ACCESS:%.*]] = begin_access [modify] [unsafe] [[PIPTR]]
679+ // CHECK-NEXT: assign {{.*}} to [[PIPTR_ACCESS]] : $*Double
674680
675681// CHECK-NOT: destroy_value
676682// CHECK-NOT: copy_value
677683
678684// Load of the pi field: no copy_values/releases.
679685// CHECK: [[SELF:%[0-9]+]] = load_borrow [[PB_BOX]] : $*r19254812Derived
680686// CHECK-NEXT: [[PIPTR:%[0-9]+]] = ref_element_addr [[SELF]] : $r19254812Derived, #r19254812Derived.pi
681- // CHECK-NEXT: {{.*}} = load [trivial] [[PIPTR]] : $*Double
687+ // CHECK-NEXT: [[PIPTR_ACCESS:%.*]] = begin_access [read] [unsafe] [[PIPTR]]
688+ // CHECK-NEXT: {{.*}} = load [trivial] [[PIPTR_ACCESS]] : $*Double
682689// CHECK: return
683690}
684691
0 commit comments