Skip to content

Commit ae7e14c

Browse files
author
Gabor Horvath
committed
[cxx-interop] Avoid warnings in strict memory safe mode on in generated code
The generated safe wrappers need to call unsafe code. Make sure those calls are qualified with unsafe to avoid warnings that are not actionable (users cannot fix them).
1 parent fcc367a commit ae7e14c

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)