@@ -1010,3 +1010,26 @@ bb0:
1010
1010
return %t : $()
1011
1011
}
1012
1012
1013
+ // CHECK-LABEL: sil [ossa] @test_aggreate_tail_addr :
1014
+ // CHECK: ref_tail_addr
1015
+ // CHECK: ref_tail_addr
1016
+ // CHECK-LABEL: } // end sil function 'test_aggreate_tail_addr'
1017
+ sil [ossa] @test_aggreate_tail_addr : $@convention(thin) (@owned _NativeDictionary<Int, Klass>) -> () {
1018
+ bb0(%0 : @owned $_NativeDictionary<Int, Klass>):
1019
+ %1 = move_value [lexical] %0 : $_NativeDictionary<Int, Klass>
1020
+ %2 = begin_borrow %1 : $_NativeDictionary<Int, Klass>
1021
+ %3 = struct_extract %2 : $_NativeDictionary<Int, Klass>, #_NativeDictionary._storage
1022
+ %4 = copy_value %3 : $__RawDictionaryStorage
1023
+ %5 = ref_tail_addr %3 : $__RawDictionaryStorage, $_UnsafeBitset.Word
1024
+ %6 = load [trivial] %5 : $*_UnsafeBitset.Word
1025
+ end_borrow %2 : $_NativeDictionary<Int, Klass>
1026
+ %8 = begin_borrow %4 : $__RawDictionaryStorage
1027
+ %9 = ref_tail_addr %8 : $__RawDictionaryStorage, $_UnsafeBitset.Word
1028
+ %10 = struct_element_addr %9 : $*_UnsafeBitset.Word, #_UnsafeBitset.Word.value
1029
+ %11 = struct_element_addr %10 : $*UInt, #UInt._value
1030
+ %12 = load [trivial] %11 : $*Builtin.Int64
1031
+ end_borrow %8 : $__RawDictionaryStorage
1032
+ destroy_value %4 : $__RawDictionaryStorage
1033
+ destroy_value %1 : $_NativeDictionary<Int, Klass>
1034
+ unreachable
1035
+ }
0 commit comments