Skip to content

Commit 596b015

Browse files
committed
Adjust ABI test and guard address of property
1 parent 6953a7c commit 596b015

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
@@ -93,7 +93,11 @@ extension InlineArray where Element: ~Copyable {
9393
@_alwaysEmitIntoClient
9494
@_transparent
9595
internal var _protectedAddress: UnsafePointer<Element> {
96+
#if $AddressOfProperty
97+
unsafe UnsafePointer<Element>(Builtin.addressOfBorrow(_storage))
98+
#else
9699
unsafe UnsafePointer<Element>(Builtin.addressOfBorrow(self))
100+
#endif
97101
}
98102

99103
/// Returns a buffer pointer over the entire array while performing stack
@@ -145,7 +149,11 @@ extension InlineArray where Element: ~Copyable {
145149
@_transparent
146150
internal var _protectedMutableAddress: UnsafeMutablePointer<Element> {
147151
mutating get {
152+
#if $AddressOfProperty
153+
unsafe UnsafeMutablePointer<Element>(Builtin.addressof(&_storage))
154+
#else
148155
unsafe UnsafeMutablePointer<Element>(Builtin.addressof(&self))
156+
#endif
149157
}
150158
}
151159

@@ -526,6 +534,7 @@ extension InlineArray where Element: ~Copyable {
526534
@_alwaysEmitIntoClient
527535
public var span: Span<Element> {
528536
@lifetime(borrow self)
537+
@_transparent
529538
borrowing get {
530539
let span = unsafe Span(_unsafeStart: _protectedAddress, count: count)
531540
return unsafe _overrideLifetime(span, borrowing: self)
@@ -536,6 +545,7 @@ extension InlineArray where Element: ~Copyable {
536545
@_alwaysEmitIntoClient
537546
public var mutableSpan: MutableSpan<Element> {
538547
@lifetime(&self)
548+
@_transparent
539549
mutating get {
540550
let span = unsafe MutableSpan(
541551
_unsafeStart: _protectedMutableAddress,

test/abi/macOS/arm64/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
@@ -1090,3 +1089,8 @@ Added: _$ss8UTF8SpanV9_asciiBits6UInt64VvpZMV
10901089

10911090
// printing foreign reference types requires a new displayStyle: .foreign
10921091
Added: _$ss6MirrorV12DisplayStyleO16foreignReferenceyA2DmFWC
1092+
1093+
// var InlineArray._protectedBuffer
1094+
// var InlineArray._protectedAddress
1095+
Added: _$ss11InlineArrayVsRi__rlE16_protectedBufferSRyq_GvpMV
1096+
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
@@ -933,7 +933,6 @@ Added: _$sSs8UTF8ViewV4spans4SpanVys5UInt8VGvg
933933
Added: _$sSa11mutableSpans07MutableB0VyxGvr
934934
Added: _$ss10ArraySliceV11mutableSpans07MutableD0VyxGvr
935935
Added: _$ss15ContiguousArrayV11mutableSpans07MutableD0VyxGvr
936-
Added: _$ss11InlineArrayVsRi__rlE11mutableSpans07MutableD0Vyq_Gvr
937936
Added: _$ss15CollectionOfOneV11mutableSpans07MutableE0VyxGvr
938937
Added: _$sSrsRi_zrlE11mutableSpans07MutableB0VyxGvr
939938
Added: _$sSw12mutableBytess14MutableRawSpanVvr
@@ -1090,3 +1089,8 @@ Added: _$ss8UTF8SpanV9_asciiBits6UInt64VvpZMV
10901089

10911090
// printing foreign reference types requires a new displayStyle: .foreign
10921091
Added: _$ss6MirrorV12DisplayStyleO16foreignReferenceyA2DmFWC
1092+
1093+
// var InlineArray._protectedBuffer
1094+
// var InlineArray._protectedAddress
1095+
Added: _$ss11InlineArrayVsRi__rlE16_protectedBufferSRyq_GvpMV
1096+
Added: _$ss11InlineArrayVsRi__rlE17_protectedAddressSPyq_GvpMV

0 commit comments

Comments
 (0)