Skip to content

Commit 496aa11

Browse files
Azoyglessard
authored andcommitted
Adjust ABI test and guard address of property
1 parent b99ec0e commit 496aa11

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

stdlib/public/core/InlineArray.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,11 @@ extension InlineArray where Element: ~Copyable {
8989
@_alwaysEmitIntoClient
9090
@_transparent
9191
internal var _protectedAddress: UnsafePointer<Element> {
92+
#if $AddressOfProperty
93+
unsafe UnsafePointer<Element>(Builtin.addressOfBorrow(_storage))
94+
#else
9295
unsafe UnsafePointer<Element>(Builtin.addressOfBorrow(self))
96+
#endif
9397
}
9498

9599
/// Returns a buffer pointer over the entire array while performing stack
@@ -137,7 +141,11 @@ extension InlineArray where Element: ~Copyable {
137141
@_transparent
138142
internal var _protectedMutableAddress: UnsafeMutablePointer<Element> {
139143
mutating get {
144+
#if $AddressOfProperty
145+
unsafe UnsafeMutablePointer<Element>(Builtin.addressof(&_storage))
146+
#else
140147
unsafe UnsafeMutablePointer<Element>(Builtin.addressof(&self))
148+
#endif
141149
}
142150
}
143151

@@ -518,6 +526,7 @@ extension InlineArray where Element: ~Copyable {
518526
@_alwaysEmitIntoClient
519527
public var span: Span<Element> {
520528
@lifetime(borrow self)
529+
@_transparent
521530
borrowing get {
522531
let span = unsafe Span(_unsafeStart: _protectedAddress, count: count)
523532
return unsafe _overrideLifetime(span, borrowing: self)
@@ -528,6 +537,7 @@ extension InlineArray where Element: ~Copyable {
528537
@_alwaysEmitIntoClient
529538
public var mutableSpan: MutableSpan<Element> {
530539
@lifetime(&self)
540+
@_transparent
531541
mutating get {
532542
let span = unsafe MutableSpan(
533543
_unsafeStart: _protectedMutableAddress,

test/abi/macOS/arm64/stdlib.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -931,7 +931,6 @@ Added: _$sSs8UTF8ViewV4spans4SpanVys5UInt8VGvg
931931
Added: _$sSa11mutableSpans07MutableB0VyxGvr
932932
Added: _$ss10ArraySliceV11mutableSpans07MutableD0VyxGvr
933933
Added: _$ss15ContiguousArrayV11mutableSpans07MutableD0VyxGvr
934-
Added: _$ss11InlineArrayVsRi__rlE11mutableSpans07MutableD0Vyq_Gvr
935934
Added: _$ss15CollectionOfOneV11mutableSpans07MutableE0VyxGvr
936935
Added: _$sSrsRi_zrlE11mutableSpans07MutableB0VyxGvr
937936
Added: _$sSw12mutableBytess14MutableRawSpanVvr
@@ -1085,3 +1084,8 @@ Added: _$ss8UTF8SpanV9_asciiBits6UInt64VvpZMV
10851084

10861085
// printing foreign reference types requires a new displayStyle: .foreign
10871086
Added: _$ss6MirrorV12DisplayStyleO16foreignReferenceyA2DmFWC
1087+
1088+
// var InlineArray._protectedBuffer
1089+
// var InlineArray._protectedAddress
1090+
Added: _$ss11InlineArrayVsRi__rlE16_protectedBufferSRyq_GvpMV
1091+
Added: _$ss11InlineArrayVsRi__rlE17_protectedAddressSPyq_GvpMV

test/abi/macOS/x86_64/stdlib.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -932,7 +932,6 @@ Added: _$sSs8UTF8ViewV4spans4SpanVys5UInt8VGvg
932932
Added: _$sSa11mutableSpans07MutableB0VyxGvr
933933
Added: _$ss10ArraySliceV11mutableSpans07MutableD0VyxGvr
934934
Added: _$ss15ContiguousArrayV11mutableSpans07MutableD0VyxGvr
935-
Added: _$ss11InlineArrayVsRi__rlE11mutableSpans07MutableD0Vyq_Gvr
936935
Added: _$ss15CollectionOfOneV11mutableSpans07MutableE0VyxGvr
937936
Added: _$sSrsRi_zrlE11mutableSpans07MutableB0VyxGvr
938937
Added: _$sSw12mutableBytess14MutableRawSpanVvr
@@ -1085,3 +1084,8 @@ Added: _$ss8UTF8SpanV9_asciiBits6UInt64VvpZMV
10851084

10861085
// printing foreign reference types requires a new displayStyle: .foreign
10871086
Added: _$ss6MirrorV12DisplayStyleO16foreignReferenceyA2DmFWC
1087+
1088+
// var InlineArray._protectedBuffer
1089+
// var InlineArray._protectedAddress
1090+
Added: _$ss11InlineArrayVsRi__rlE16_protectedBufferSRyq_GvpMV
1091+
Added: _$ss11InlineArrayVsRi__rlE17_protectedAddressSPyq_GvpMV

0 commit comments

Comments
 (0)