Skip to content

Commit c08a1ee

Browse files
authored
Merge pull request #79691 from swiftlang/gaborh/unsafe-in-generated-wrappers
2 parents beba678 + ae7e14c commit c08a1ee

30 files changed

+63
-63
lines changed

lib/Macros/Sources/SwiftMacros/SwiftifyImportMacro.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,7 @@ struct CountedOrSizedPointerThunkBuilder: ParamPointerBoundsThunkBuilder {
599599
let unwrappedCall = ExprSyntax(
600600
"""
601601
\(ptrRef).\(raw: funcName) { \(unwrappedName) in
602-
return \(call)
602+
return unsafe \(call)
603603
}
604604
""")
605605
return unwrappedCall
@@ -660,7 +660,7 @@ struct CountedOrSizedPointerThunkBuilder: ParamPointerBoundsThunkBuilder {
660660
return ExprSyntax(
661661
"""
662662
if \(name) == nil {
663-
\(try base.buildFunctionCall(nullArgs))
663+
unsafe \(try base.buildFunctionCall(nullArgs))
664664
} else {
665665
\(unwrappedCall)
666666
}
@@ -1142,7 +1142,7 @@ public struct SwiftifyImportMacro: PeerMacro {
11421142
item: CodeBlockItemSyntax.Item(
11431143
ReturnStmtSyntax(
11441144
returnKeyword: .keyword(.return, trailingTrivia: " "),
1145-
expression: try builder.buildFunctionCall([:]))))
1145+
expression: ExprSyntax("unsafe \(try builder.buildFunctionCall([:]))"))))
11461146
let body = CodeBlockSyntax(statements: CodeBlockItemListSyntax(checks + [call]))
11471147
let lifetimeAttrs = lifetimeAttributes(funcDecl, lifetimeDependencies)
11481148
let disfavoredOverload : [AttributeListSyntax.Element] = (onlyReturnTypeChanged ? [

test/Macros/SwiftifyImport/CountedBy/CountExpr.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ func myFunc(_ ptr: UnsafePointer<CInt>, _ size: CInt, _ count: CInt) {
1212
// CHECK-NEXT: if ptr.count < _ptrCount || _ptrCount < 0 {
1313
// CHECK-NEXT: fatalError("bounds check failure when calling unsafe function")
1414
// CHECK-NEXT: }
15-
// CHECK-NEXT: return myFunc(ptr.baseAddress!, size, count)
15+
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, size, count)
1616
// CHECK-NEXT: }
1717

test/Macros/SwiftifyImport/CountedBy/MultipleParams.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ func myFunc(_ ptr: UnsafePointer<CInt>, _ len: CInt, _ ptr2: UnsafePointer<CInt>
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr: UnsafeBufferPointer<CInt>, _ ptr2: UnsafeBufferPointer<CInt>) {
11-
// CHECK-NEXT: return myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!, ptr2.baseAddress!, CInt(exactly: ptr2.count)!)
11+
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!, ptr2.baseAddress!, CInt(exactly: ptr2.count)!)
1212
// CHECK-NEXT: }

test/Macros/SwiftifyImport/CountedBy/Mutable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ func myFunc(_ ptr: UnsafeMutablePointer<CInt>, _ len: CInt) {
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr: UnsafeMutableBufferPointer<CInt>) {
11-
// CHECK-NEXT: return myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!)
11+
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!)
1212
// CHECK-NEXT: }
1313

test/Macros/SwiftifyImport/CountedBy/MutableSpan.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ func myFunc(_ ptr: UnsafeMutablePointer<CInt>, _ len: CInt) {
99

1010
// CHECK: @_alwaysEmitIntoClient
1111
// CHECK-NEXT: func myFunc(_ ptr: MutableSpan<CInt>) {
12-
// CHECK-NEXT: return ptr.withUnsafeBufferPointer { _ptrPtr in
13-
// CHECK-NEXT: return myFunc(_ptrPtr.baseAddress!, CInt(exactly: ptr.count)!)
12+
// CHECK-NEXT: return unsafe ptr.withUnsafeBufferPointer { _ptrPtr in
13+
// CHECK-NEXT: return unsafe myFunc(_ptrPtr.baseAddress!, CInt(exactly: ptr.count)!)
1414
// CHECK-NEXT: }
1515
// CHECK-NEXT: }
1616

test/Macros/SwiftifyImport/CountedBy/NamedParams.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,31 +28,31 @@ func allNamedOther(buf ptr: UnsafePointer<CInt>, count len: CInt) {
2828

2929
// CHECK: @_alwaysEmitIntoClient
3030
// CHECK-NEXT: func ptrNamed(ptr: UnsafeBufferPointer<CInt>) {
31-
// CHECK-NEXT: return ptrNamed(ptr: ptr.baseAddress!, CInt(exactly: ptr.count)!)
31+
// CHECK-NEXT: return unsafe ptrNamed(ptr: ptr.baseAddress!, CInt(exactly: ptr.count)!)
3232
// CHECK-NEXT: }
3333

3434
// CHECK: @_alwaysEmitIntoClient
3535
// CHECK-NEXT: func ptrNamedOther(buf ptr: UnsafeBufferPointer<CInt>) {
36-
// CHECK-NEXT: return ptrNamedOther(buf: ptr.baseAddress!, CInt(exactly: ptr.count)!)
36+
// CHECK-NEXT: return unsafe ptrNamedOther(buf: ptr.baseAddress!, CInt(exactly: ptr.count)!)
3737
// CHECK-NEXT: }
3838

3939
// CHECK: @_alwaysEmitIntoClient
4040
// CHECK-NEXT: func lenNamed(_ ptr: UnsafeBufferPointer<CInt>) {
41-
// CHECK-NEXT: return lenNamed(ptr.baseAddress!, len: CInt(exactly: ptr.count)!)
41+
// CHECK-NEXT: return unsafe lenNamed(ptr.baseAddress!, len: CInt(exactly: ptr.count)!)
4242
// CHECK-NEXT: }
4343

4444
// CHECK: @_alwaysEmitIntoClient
4545
// CHECK-NEXT: func lenNamedOther(_ ptr: UnsafeBufferPointer<CInt>) {
46-
// CHECK-NEXT: return lenNamedOther(ptr.baseAddress!, count: CInt(exactly: ptr.count)!)
46+
// CHECK-NEXT: return unsafe lenNamedOther(ptr.baseAddress!, count: CInt(exactly: ptr.count)!)
4747
// CHECK-NEXT: }
4848

4949
// CHECK: @_alwaysEmitIntoClient
5050
// CHECK-NEXT: func allNamed(ptr: UnsafeBufferPointer<CInt>) {
51-
// CHECK-NEXT: return allNamed(ptr: ptr.baseAddress!, len: CInt(exactly: ptr.count)!)
51+
// CHECK-NEXT: return unsafe allNamed(ptr: ptr.baseAddress!, len: CInt(exactly: ptr.count)!)
5252
// CHECK-NEXT: }
5353

5454
// CHECK: @_alwaysEmitIntoClient
5555
// CHECK-NEXT: func allNamedOther(buf ptr: UnsafeBufferPointer<CInt>) {
56-
// CHECK-NEXT: return allNamedOther(buf: ptr.baseAddress!, count: CInt(exactly: ptr.count)!)
56+
// CHECK-NEXT: return unsafe allNamedOther(buf: ptr.baseAddress!, count: CInt(exactly: ptr.count)!)
5757
// CHECK-NEXT: }
5858

test/Macros/SwiftifyImport/CountedBy/Nullable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ func myFunc(_ ptr: UnsafePointer<CInt>?, _ len: CInt) {
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr: UnsafeBufferPointer<CInt>?) {
11-
// CHECK-NEXT: return myFunc(ptr?.baseAddress, CInt(exactly: ptr?.count ?? 0)!)
11+
// CHECK-NEXT: return unsafe myFunc(ptr?.baseAddress, CInt(exactly: ptr?.count ?? 0)!)
1212
// CHECK-NEXT: }

test/Macros/SwiftifyImport/CountedBy/PointerReturn.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,22 @@ func lifetimeDependentBorrow(_ p: borrowing UnsafePointer<CInt>, _ len1: CInt, _
2121

2222
// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
2323
// CHECK-NEXT: func myFunc(_ len: CInt) -> UnsafeMutableBufferPointer<CInt> {
24-
// CHECK-NEXT: return UnsafeMutableBufferPointer<CInt> (start: myFunc(len), count: Int(len))
24+
// CHECK-NEXT: return unsafe UnsafeMutableBufferPointer<CInt> (start: myFunc(len), count: Int(len))
2525
// CHECK-NEXT: }
2626

2727
// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
2828
// CHECK-NEXT: func nonEscaping(_ len: CInt) -> UnsafeBufferPointer<CInt> {
29-
// CHECK-NEXT: return UnsafeBufferPointer<CInt> (start: nonEscaping(len), count: Int(len))
29+
// CHECK-NEXT: return unsafe UnsafeBufferPointer<CInt> (start: nonEscaping(len), count: Int(len))
3030

3131
// CHECK: @_alwaysEmitIntoClient @lifetime(p)
3232
// CHECK-NEXT: func lifetimeDependentCopy(_ p: Span<CInt>, _ len2: CInt) -> Span<CInt> {
33-
// CHECK-NEXT: return Span<CInt> (_unsafeStart: p.withUnsafeBufferPointer { _pPtr in
34-
// CHECK-NEXT: return lifetimeDependentCopy(_pPtr.baseAddress!, CInt(exactly: p.count)!, len2)
33+
// CHECK-NEXT: return unsafe Span<CInt> (_unsafeStart: p.withUnsafeBufferPointer { _pPtr in
34+
// CHECK-NEXT: return unsafe lifetimeDependentCopy(_pPtr.baseAddress!, CInt(exactly: p.count)!, len2)
3535
// CHECK-NEXT: }, count: Int(len2))
3636
// CHECK-NEXT: }
3737

3838
// CHECK: @_alwaysEmitIntoClient @lifetime(borrow p)
3939
// CHECK-NEXT: func lifetimeDependentBorrow(_ p: borrowing UnsafeBufferPointer<CInt>, _ len2: CInt) -> Span<CInt> {
40-
// CHECK-NEXT: return Span<CInt> (_unsafeStart: lifetimeDependentBorrow(p.baseAddress!, CInt(exactly: p.count)!, len2), count: Int(len2))
40+
// CHECK-NEXT: return unsafe Span<CInt> (_unsafeStart: lifetimeDependentBorrow(p.baseAddress!, CInt(exactly: p.count)!, len2), count: Int(len2))
4141
// CHECK-NEXT: }
4242

test/Macros/SwiftifyImport/CountedBy/QualifiedTypes.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ func bar(_ ptr: Swift.UnsafePointer<Swift.CInt>, _ len: Swift.Int) -> () {
1212

1313
// CHECK: @_alwaysEmitIntoClient
1414
// CHECK-NEXT: func foo(_ ptr: Swift.UnsafeBufferPointer<Swift.Int>) -> Swift.Void {
15-
// CHECK-NEXT: return foo(ptr.baseAddress!, ptr.count)
15+
// CHECK-NEXT: return unsafe foo(ptr.baseAddress!, ptr.count)
1616
// CHECK-NEXT: }
1717

1818
// CHECK: @_alwaysEmitIntoClient
1919
// CHECK-NEXT: func bar(_ ptr: Swift.UnsafeBufferPointer<Swift.CInt>) -> () {
20-
// CHECK-NEXT: return bar(ptr.baseAddress!, ptr.count)
20+
// CHECK-NEXT: return unsafe bar(ptr.baseAddress!, ptr.count)
2121
// CHECK-NEXT: }
2222

2323

test/Macros/SwiftifyImport/CountedBy/Return.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ func myFunc(_ ptr: UnsafePointer<CInt>, _ len: CInt) -> CInt {
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr: UnsafeBufferPointer<CInt>) -> CInt {
11-
// CHECK-NEXT: return myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!)
11+
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!)
1212
// CHECK-NEXT: }

test/Macros/SwiftifyImport/CountedBy/SharedCount.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ func myFunc(_ ptr: UnsafePointer<CInt>, _ ptr2: UnsafePointer<CInt>, _ len: CInt
1616
// CHECK-NEXT: if ptr2.count < _ptr2Count || _ptr2Count < 0 {
1717
// CHECK-NEXT: fatalError("bounds check failure when calling unsafe function")
1818
// CHECK-NEXT: }
19-
// CHECK-NEXT: return myFunc(ptr.baseAddress!, ptr2.baseAddress!, len)
19+
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, ptr2.baseAddress!, len)
2020
// CHECK-NEXT: }

test/Macros/SwiftifyImport/CountedBy/SimpleCount.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ func myFunc(_ ptr: UnsafePointer<CInt>, _ len: CInt) {
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr: UnsafeBufferPointer<CInt>) {
11-
// CHECK-NEXT: return myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!)
11+
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!)
1212
// CHECK-NEXT: }

test/Macros/SwiftifyImport/CountedBy/SimpleSpan.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ func myFunc(_ ptr: UnsafePointer<CInt>, _ len: CInt) {
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr: Span<CInt>) {
11-
// CHECK-NEXT: return ptr.withUnsafeBufferPointer { _ptrPtr in
12-
// CHECK-NEXT: return myFunc(_ptrPtr.baseAddress!, CInt(exactly: ptr.count)!)
11+
// CHECK-NEXT: return unsafe ptr.withUnsafeBufferPointer { _ptrPtr in
12+
// CHECK-NEXT: return unsafe myFunc(_ptrPtr.baseAddress!, CInt(exactly: ptr.count)!)
1313
// CHECK-NEXT: }
1414
// CHECK-NEXT: }

test/Macros/SwiftifyImport/CountedBy/SimpleSpanWithReturn.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ func myFunc(_ ptr: UnsafePointer<CInt>, _ len: CInt) -> CInt {
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr: Span<CInt>) -> CInt {
11-
// CHECK-NEXT: return ptr.withUnsafeBufferPointer { _ptrPtr in
12-
// CHECK-NEXT: return myFunc(_ptrPtr.baseAddress!, CInt(exactly: ptr.count)!)
11+
// CHECK-NEXT: return unsafe ptr.withUnsafeBufferPointer { _ptrPtr in
12+
// CHECK-NEXT: return unsafe myFunc(_ptrPtr.baseAddress!, CInt(exactly: ptr.count)!)
1313
// CHECK-NEXT: }
1414
// CHECK-NEXT: }

test/Macros/SwiftifyImport/CountedBy/SpanAndUnsafeBuffer.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ func myFunc(_ ptr1: UnsafePointer<CInt>, _ len1: CInt, _ ptr2: UnsafePointer<CIn
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr1: Span<CInt>, _ ptr2: UnsafeBufferPointer<CInt>) {
11-
// CHECK-NEXT: return ptr1.withUnsafeBufferPointer { _ptr1Ptr in
12-
// CHECK-NEXT: return myFunc(_ptr1Ptr.baseAddress!, CInt(exactly: ptr1.count)!, ptr2.baseAddress!, CInt(exactly: ptr2.count)!)
11+
// CHECK-NEXT: return unsafe ptr1.withUnsafeBufferPointer { _ptr1Ptr in
12+
// CHECK-NEXT: return unsafe myFunc(_ptr1Ptr.baseAddress!, CInt(exactly: ptr1.count)!, ptr2.baseAddress!, CInt(exactly: ptr2.count)!)
1313
// CHECK-NEXT: }
1414
// CHECK-NEXT: }
1515

test/Macros/SwiftifyImport/CountedBy/Unwrapped.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ func myFunc(_ ptr: UnsafePointer<CInt>!, _ len: CInt) {
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr: UnsafeBufferPointer<CInt>) {
11-
// CHECK-NEXT: return myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!)
11+
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!)
1212
// CHECK-NEXT: }
1313

test/Macros/SwiftifyImport/CxxSpan/LifetimeboundSpan.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// REQUIRES: swift_swift_parser
33
// REQUIRES: swift_feature_LifetimeDependence
44

5-
// RUN: %target-swift-frontend %s -enable-experimental-cxx-interop -I %S/Inputs -Xcc -std=c++20 -swift-version 5 -module-name main -disable-availability-checking -typecheck -enable-experimental-feature LifetimeDependence -plugin-path %swift-plugin-dir -dump-macro-expansions 2>&1 | %FileCheck --match-full-lines %s
5+
// RUN: %target-swift-frontend %s -enable-experimental-cxx-interop -I %S/Inputs -Xcc -std=c++20 -swift-version 5 -module-name main -disable-availability-checking -typecheck -enable-experimental-feature LifetimeDependence -plugin-path %swift-plugin-dir -dump-macro-expansions -verify -strict-memory-safety 2>&1 | %FileCheck --match-full-lines %s
66

77
// FIXME swift-ci linux tests do not support std::span
88
// UNSUPPORTED: OS=linux-gnu
@@ -35,25 +35,25 @@ struct X {
3535

3636
// CHECK: @_alwaysEmitIntoClient @lifetime(span)
3737
// CHECK-NEXT: func myFunc(_ span: Span<CInt>) -> Span<CInt> {
38-
// CHECK-NEXT: return _unsafeRemoveLifetime(Span(_unsafeCxxSpan: myFunc(SpanOfInt(span))))
38+
// CHECK-NEXT: return unsafe _unsafeRemoveLifetime(Span(_unsafeCxxSpan: myFunc(SpanOfInt(span))))
3939
// CHECK-NEXT: }
4040

4141
// CHECK: @_alwaysEmitIntoClient @lifetime(borrow vec) @_disfavoredOverload
4242
// CHECK-NEXT: func myFunc2(_ vec: borrowing VecOfInt) -> Span<CInt> {
43-
// CHECK-NEXT: return _unsafeRemoveLifetime(Span(_unsafeCxxSpan: myFunc2(vec)))
43+
// CHECK-NEXT: return unsafe _unsafeRemoveLifetime(Span(_unsafeCxxSpan: myFunc2(vec)))
4444
// CHECK-NEXT: }
4545

4646
// CHECK: @_alwaysEmitIntoClient @lifetime(span1, span2)
4747
// CHECK-NEXT: func myFunc3(_ span1: Span<CInt>, _ span2: Span<CInt>) -> Span<CInt> {
48-
// CHECK-NEXT: return _unsafeRemoveLifetime(Span(_unsafeCxxSpan: myFunc3(SpanOfInt(span1), SpanOfInt(span2))))
48+
// CHECK-NEXT: return unsafe _unsafeRemoveLifetime(Span(_unsafeCxxSpan: myFunc3(SpanOfInt(span1), SpanOfInt(span2))))
4949
// CHECK-NEXT: }
5050

5151
// CHECK: @_alwaysEmitIntoClient @lifetime(borrow vec, span)
5252
// CHECK-NEXT: func myFunc4(_ vec: borrowing VecOfInt, _ span: Span<CInt>) -> Span<CInt> {
53-
// CHECK-NEXT: return _unsafeRemoveLifetime(Span(_unsafeCxxSpan: myFunc4(vec, SpanOfInt(span))))
53+
// CHECK-NEXT: return unsafe _unsafeRemoveLifetime(Span(_unsafeCxxSpan: myFunc4(vec, SpanOfInt(span))))
5454
// CHECK-NEXT: }
5555

5656
// CHECK: @_alwaysEmitIntoClient @lifetime(borrow self) @_disfavoredOverload
5757
// CHECK-NEXT: func myFunc5() -> Span<CInt> {
58-
// CHECK-NEXT: return _unsafeRemoveLifetime(Span(_unsafeCxxSpan: myFunc5()))
58+
// CHECK-NEXT: return unsafe _unsafeRemoveLifetime(Span(_unsafeCxxSpan: myFunc5()))
5959
// CHECK-NEXT: }

test/Macros/SwiftifyImport/CxxSpan/NoEscapeSpan.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ func myFunc(_ span: SpanOfInt, _ secondSpan: SpanOfInt) {
1212

1313
// CHECK: @_alwaysEmitIntoClient
1414
// CHECK-NEXT: func myFunc(_ span: Span<CInt>, _ secondSpan: SpanOfInt) {
15-
// CHECK-NEXT: return myFunc(SpanOfInt(span), secondSpan)
15+
// CHECK-NEXT: return unsafe myFunc(SpanOfInt(span), secondSpan)
1616
// CHECK-NEXT: }

test/Macros/SwiftifyImport/SizedBy/MultipleParams.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ func myFunc(_ ptr: UnsafeRawPointer, _ size: CInt, _ ptr2: UnsafeRawPointer, _ s
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr: UnsafeRawBufferPointer, _ ptr2: UnsafeRawBufferPointer) {
11-
// CHECK-NEXT: return myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!, ptr2.baseAddress!, CInt(exactly: ptr2.count)!)
11+
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!, ptr2.baseAddress!, CInt(exactly: ptr2.count)!)
1212
// CHECK-NEXT: }

test/Macros/SwiftifyImport/SizedBy/Mutable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ func myFunc(_ ptr: UnsafeMutableRawPointer, _ size: CInt) {
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr: UnsafeMutableRawBufferPointer) {
11-
// CHECK-NEXT: return myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!)
11+
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!)
1212
// CHECK-NEXT: }

test/Macros/SwiftifyImport/SizedBy/MutableRawSpan.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ func myFunc(_ ptr: UnsafeMutableRawPointer, _ size: CInt) {
99

1010
// CHECK: @_alwaysEmitIntoClient
1111
// CHECK-NEXT: func myFunc(_ ptr: MutableRawSpan) {
12-
// CHECK-NEXT: return ptr.withUnsafeBytes { _ptrPtr in
13-
// CHECK-NEXT: return myFunc(_ptrPtr.baseAddress!, CInt(exactly: ptr.byteCount)!)
12+
// CHECK-NEXT: return unsafe ptr.withUnsafeBytes { _ptrPtr in
13+
// CHECK-NEXT: return unsafe myFunc(_ptrPtr.baseAddress!, CInt(exactly: ptr.byteCount)!)
1414
// CHECK-NEXT: }
1515
// CHECK-NEXT: }

test/Macros/SwiftifyImport/SizedBy/Nullable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ func myFunc(_ ptr: UnsafeRawPointer?, _ size: CInt) {
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr: UnsafeRawBufferPointer?) {
11-
// CHECK-NEXT: return myFunc(ptr?.baseAddress, CInt(exactly: ptr?.count ?? 0)!)
11+
// CHECK-NEXT: return unsafe myFunc(ptr?.baseAddress, CInt(exactly: ptr?.count ?? 0)!)
1212
// CHECK-NEXT: }

test/Macros/SwiftifyImport/SizedBy/Opaque.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,41 +30,41 @@ func impNullableSpan(_ ptr: OpaquePointer!, _ size: CInt) {
3030

3131
// CHECK: @_alwaysEmitIntoClient
3232
// CHECK-NEXT: func nonnullUnsafeRawBufferPointer(_ ptr: UnsafeRawBufferPointer) {
33-
// CHECK-NEXT: return nonnullUnsafeRawBufferPointer(OpaquePointer(ptr.baseAddress!), CInt(exactly: ptr.count)!)
33+
// CHECK-NEXT: return unsafe nonnullUnsafeRawBufferPointer(OpaquePointer(ptr.baseAddress!), CInt(exactly: ptr.count)!)
3434
// CHECK-NEXT: }
3535

3636
// CHECK: @_alwaysEmitIntoClient
3737
// CHECK-NEXT: func nullableUnsafeRawBufferPointer(_ ptr: UnsafeRawBufferPointer?) {
38-
// CHECK-NEXT: return nullableUnsafeRawBufferPointer(OpaquePointer(ptr?.baseAddress), CInt(exactly: ptr?.count ?? 0)!)
38+
// CHECK-NEXT: return unsafe nullableUnsafeRawBufferPointer(OpaquePointer(ptr?.baseAddress), CInt(exactly: ptr?.count ?? 0)!)
3939
// CHECK-NEXT: }
4040

4141
// CHECK: @_alwaysEmitIntoClient
4242
// CHECK-NEXT: func impNullableUnsafeRawBufferPointer(_ ptr: UnsafeRawBufferPointer) {
43-
// CHECK-NEXT: return impNullableUnsafeRawBufferPointer(OpaquePointer(ptr.baseAddress!), CInt(exactly: ptr.count)!)
43+
// CHECK-NEXT: return unsafe impNullableUnsafeRawBufferPointer(OpaquePointer(ptr.baseAddress!), CInt(exactly: ptr.count)!)
4444
// CHECK-NEXT: }
4545

4646
// CHECK: @_alwaysEmitIntoClient
4747
// CHECK-NEXT: func nonnullSpan(_ ptr: RawSpan) {
48-
// CHECK-NEXT: return ptr.withUnsafeBytes { _ptrPtr in
49-
// CHECK-NEXT: return nonnullSpan(OpaquePointer(_ptrPtr.baseAddress!), CInt(exactly: ptr.byteCount)!)
48+
// CHECK-NEXT: return unsafe ptr.withUnsafeBytes { _ptrPtr in
49+
// CHECK-NEXT: return unsafe nonnullSpan(OpaquePointer(_ptrPtr.baseAddress!), CInt(exactly: ptr.byteCount)!)
5050
// CHECK-NEXT: }
5151
// CHECK-NEXT: }
5252

5353
// CHECK: @_alwaysEmitIntoClient
5454
// CHECK-NEXT: func nullableSpan(_ ptr: RawSpan?) {
55-
// CHECK-NEXT: return if ptr == nil {
56-
// CHECK-NEXT: nullableSpan(nil, CInt(exactly: ptr?.byteCount ?? 0)!)
55+
// CHECK-NEXT: return unsafe if ptr == nil {
56+
// CHECK-NEXT: unsafe nullableSpan(nil, CInt(exactly: ptr?.byteCount ?? 0)!)
5757
// CHECK-NEXT: } else {
5858
// CHECK-NEXT: ptr!.withUnsafeBytes { _ptrPtr in
59-
// CHECK-NEXT: return nullableSpan(OpaquePointer(_ptrPtr.baseAddress), CInt(exactly: ptr?.byteCount ?? 0)!)
59+
// CHECK-NEXT: return unsafe nullableSpan(OpaquePointer(_ptrPtr.baseAddress), CInt(exactly: ptr?.byteCount ?? 0)!)
6060
// CHECK-NEXT: }
6161
// CHECK-NEXT: }
6262
// CHECK-NEXT: }
6363

6464
// CHECK: @_alwaysEmitIntoClient
6565
// CHECK-NEXT: func impNullableSpan(_ ptr: RawSpan) {
66-
// CHECK-NEXT: return ptr.withUnsafeBytes { _ptrPtr in
67-
// CHECK-NEXT: return impNullableSpan(OpaquePointer(_ptrPtr.baseAddress!), CInt(exactly: ptr.byteCount)!)
66+
// CHECK-NEXT: return unsafe ptr.withUnsafeBytes { _ptrPtr in
67+
// CHECK-NEXT: return unsafe impNullableSpan(OpaquePointer(_ptrPtr.baseAddress!), CInt(exactly: ptr.byteCount)!)
6868
// CHECK-NEXT: }
6969
// CHECK-NEXT: }
7070

test/Macros/SwiftifyImport/SizedBy/Return.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ func myFunc(_ ptr: UnsafeRawPointer, _ size: CInt) -> CInt {
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr: UnsafeRawBufferPointer) -> CInt {
11-
// CHECK-NEXT: return myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!)
11+
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, CInt(exactly: ptr.count)!)
1212
// CHECK-NEXT: }

test/Macros/SwiftifyImport/SizedBy/SharedCount.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ func myFunc(_ ptr: UnsafeRawPointer, _ ptr2: UnsafeRawPointer, _ size: CInt) {
1616
// CHECK-NEXT: if ptr2.count < _ptr2Count || _ptr2Count < 0 {
1717
// CHECK-NEXT: fatalError("bounds check failure when calling unsafe function")
1818
// CHECK-NEXT: }
19-
// CHECK-NEXT: return myFunc(ptr.baseAddress!, ptr2.baseAddress!, size)
19+
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, ptr2.baseAddress!, size)
2020
// CHECK-NEXT: }

test/Macros/SwiftifyImport/SizedBy/SimpleRawSpan.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ func myFunc(_ ptr: UnsafeRawPointer, _ size: CInt) {
88

99
// CHECK: @_alwaysEmitIntoClient
1010
// CHECK-NEXT: func myFunc(_ ptr: RawSpan) {
11-
// CHECK-NEXT: return ptr.withUnsafeBytes { _ptrPtr in
12-
// CHECK-NEXT: return myFunc(_ptrPtr.baseAddress!, CInt(exactly: ptr.byteCount)!)
11+
// CHECK-NEXT: return unsafe ptr.withUnsafeBytes { _ptrPtr in
12+
// CHECK-NEXT: return unsafe myFunc(_ptrPtr.baseAddress!, CInt(exactly: ptr.byteCount)!)
1313
// CHECK-NEXT: }
1414
// CHECK-NEXT: }

0 commit comments

Comments
 (0)