Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion lib/Macros/Sources/SwiftMacros/SwiftifyImportMacro.swift
Original file line number Diff line number Diff line change
Expand Up @@ -882,7 +882,8 @@ struct CountedOrSizedPointerThunkBuilder: ParamBoundsThunkBuilder, PointerBounds
}

func makeCount() -> ExprSyntax {
let unsafeKw = generateSpan ? "" : "unsafe "
// We shouldn't need this for any case, but UnsafeBufferPointer?.count is currently seen as unsafe
let unsafeKw = (generateSpan || !nullable) ? "" : "unsafe "
if nullable {
return ExprSyntax("\(raw: unsafeKw)\(name)?.\(raw: countLabel) ?? 0")
}
Expand Down
4 changes: 2 additions & 2 deletions test/Macros/SwiftifyImport/CountedBy/Anonymous.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ public func myFunc4(_: UnsafeMutablePointer<CInt>, _ len: CInt) {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: public func myFunc(_ _myFunc_param0: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let _myFunc_param1 = CInt(exactly: unsafe _myFunc_param0.count)!
// CHECK-NEXT: let _myFunc_param1 = CInt(exactly: _myFunc_param0.count)!
// CHECK-NEXT: return unsafe myFunc(_myFunc_param0.baseAddress!, _myFunc_param1)
// CHECK-NEXT: }

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: public func myFunc2(_ _myFunc2_param0: UnsafeBufferPointer<CInt>, _ _myFunc2_param2: CInt) {
// CHECK-NEXT: let _myFunc2_param1 = CInt(exactly: unsafe _myFunc2_param0.count)!
// CHECK-NEXT: let _myFunc2_param1 = CInt(exactly: _myFunc2_param0.count)!
// CHECK-NEXT: return unsafe myFunc2(_myFunc2_param0.baseAddress!, _myFunc2_param1, _myFunc2_param2)
// CHECK-NEXT: }

Expand Down
8 changes: 4 additions & 4 deletions test/Macros/SwiftifyImport/CountedBy/ConstantCount.swift
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ func noescapeMutOpt(_ ptr: UnsafeMutablePointer<CInt>?) -> UnsafeMutablePointer<

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func plain(_ ptr: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let _ptrCount = unsafe ptr.count
// CHECK-NEXT: let _ptrCount = ptr.count
// CHECK-NEXT: if _ptrCount != 37 {
// CHECK-NEXT: fatalError("bounds check failure in plain: expected \(37) but got \(_ptrCount)")
// CHECK-NEXT: }
Expand All @@ -73,7 +73,7 @@ func noescapeMutOpt(_ ptr: UnsafeMutablePointer<CInt>?) -> UnsafeMutablePointer<

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func mut(_ ptr: UnsafeMutableBufferPointer<CInt>) {
// CHECK-NEXT: let _ptrCount = unsafe ptr.count
// CHECK-NEXT: let _ptrCount = ptr.count
// CHECK-NEXT: if _ptrCount != 37 {
// CHECK-NEXT: fatalError("bounds check failure in mut: expected \(37) but got \(_ptrCount)")
// CHECK-NEXT: }
Expand Down Expand Up @@ -102,7 +102,7 @@ func noescapeMutOpt(_ ptr: UnsafeMutablePointer<CInt>?) -> UnsafeMutablePointer<

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func noescape(_ ptr: UnsafeBufferPointer<CInt>) -> UnsafePointer<CInt> {
// CHECK-NEXT: let _ptrCount = unsafe ptr.count
// CHECK-NEXT: let _ptrCount = ptr.count
// CHECK-NEXT: if _ptrCount != 37 {
// CHECK-NEXT: fatalError("bounds check failure in noescape: expected \(37) but got \(_ptrCount)")
// CHECK-NEXT: }
Expand Down Expand Up @@ -139,7 +139,7 @@ func noescapeMutOpt(_ ptr: UnsafeMutablePointer<CInt>?) -> UnsafeMutablePointer<

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func noescapeMut(_ ptr: UnsafeMutableBufferPointer<CInt>) -> UnsafeMutablePointer<CInt> {
// CHECK-NEXT: let _ptrCount = unsafe ptr.count
// CHECK-NEXT: let _ptrCount = ptr.count
// CHECK-NEXT: if _ptrCount != 37 {
// CHECK-NEXT: fatalError("bounds check failure in noescapeMut: expected \(37) but got \(_ptrCount)")
// CHECK-NEXT: }
Expand Down
2 changes: 1 addition & 1 deletion test/Macros/SwiftifyImport/CountedBy/CountExpr.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ func myFunc(_ ptr: UnsafePointer<CInt>, _ size: CInt, _ count: CInt) {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc(_ ptr: UnsafeBufferPointer<CInt>, _ size: CInt, _ count: CInt) {
// CHECK-NEXT: let _ptrCount = unsafe ptr.count
// CHECK-NEXT: let _ptrCount = ptr.count
// CHECK-NEXT: if _ptrCount != size * count {
// CHECK-NEXT: fatalError("bounds check failure in myFunc: expected \(size * count) but got \(_ptrCount)")
// CHECK-NEXT: }
Expand Down
4 changes: 2 additions & 2 deletions test/Macros/SwiftifyImport/CountedBy/MultipleParams.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ func myFunc(_ ptr: UnsafePointer<CInt>, _ len: CInt, _ ptr2: UnsafePointer<CInt>

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc(_ ptr: UnsafeBufferPointer<CInt>, _ ptr2: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let len2 = CInt(exactly: unsafe ptr2.count)!
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: let len2 = CInt(exactly: ptr2.count)!
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, len, ptr2.baseAddress!, len2)
// CHECK-NEXT: }
2 changes: 1 addition & 1 deletion test/Macros/SwiftifyImport/CountedBy/Mutable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ func myFunc(_ ptr: UnsafeMutablePointer<CInt>, _ len: CInt) {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc(_ ptr: UnsafeMutableBufferPointer<CInt>) {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, len)
// CHECK-NEXT: }
12 changes: 6 additions & 6 deletions test/Macros/SwiftifyImport/CountedBy/NamedParams.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,36 +28,36 @@ func allNamedOther(buf ptr: UnsafePointer<CInt>, count len: CInt) {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func ptrNamed(ptr: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe ptrNamed(ptr: ptr.baseAddress!, len)
// CHECK-NEXT: }

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func ptrNamedOther(buf ptr: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe ptrNamedOther(buf: ptr.baseAddress!, len)
// CHECK-NEXT: }

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func lenNamed(_ ptr: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe lenNamed(ptr.baseAddress!, len: len)
// CHECK-NEXT: }

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func lenNamedOther(_ ptr: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe lenNamedOther(ptr.baseAddress!, count: len)
// CHECK-NEXT: }

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func allNamed(ptr: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe allNamed(ptr: ptr.baseAddress!, len: len)
// CHECK-NEXT: }

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func allNamedOther(buf ptr: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe allNamedOther(buf: ptr.baseAddress!, count: len)
// CHECK-NEXT: }
2 changes: 1 addition & 1 deletion test/Macros/SwiftifyImport/CountedBy/PointerReturn.swift
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,6 @@ func lifetimeDependentBorrow(_ p: borrowing UnsafePointer<CInt>, _ len1: CInt, _

// CHECK: @_alwaysEmitIntoClient @_lifetime(borrow p) @_disfavoredOverload
// CHECK-NEXT: func lifetimeDependentBorrow(_ p: borrowing UnsafeBufferPointer<CInt>, _ len2: CInt) -> Span<CInt> {
// CHECK-NEXT: let len1 = CInt(exactly: unsafe p.count)!
// CHECK-NEXT: let len1 = CInt(exactly: p.count)!
// CHECK-NEXT: return unsafe _swiftifyOverrideLifetime(Span<CInt> (_unsafeStart: unsafe lifetimeDependentBorrow(p.baseAddress!, len1, len2), count: Int(len2)), copying: ())
// CHECK-NEXT: }
4 changes: 2 additions & 2 deletions test/Macros/SwiftifyImport/CountedBy/QualifiedTypes.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ func bar(_ ptr: Swift.UnsafePointer<Swift.CInt>, _ len: Swift.Int) -> () {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func foo(_ ptr: Swift.UnsafeBufferPointer<Swift.Int>) -> Swift.Void {
// CHECK-NEXT: let len = unsafe ptr.count
// CHECK-NEXT: let len = ptr.count
// CHECK-NEXT: return unsafe foo(ptr.baseAddress!, len)
// CHECK-NEXT: }

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func bar(_ ptr: Swift.UnsafeBufferPointer<Swift.CInt>) -> () {
// CHECK-NEXT: let len = unsafe ptr.count
// CHECK-NEXT: let len = ptr.count
// CHECK-NEXT: return unsafe bar(ptr.baseAddress!, len)
// CHECK-NEXT: }
2 changes: 1 addition & 1 deletion test/Macros/SwiftifyImport/CountedBy/Return.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ func myFunc(_ ptr: UnsafePointer<CInt>, _ len: CInt) -> CInt {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc(_ ptr: UnsafeBufferPointer<CInt>) -> CInt {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, len)
// CHECK-NEXT: }
28 changes: 14 additions & 14 deletions test/Macros/SwiftifyImport/CountedBy/SharedCount.swift
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,17 @@ func myFunc5(_ ptr: UnsafePointer<CInt>, _ ptr2: UnsafePointer<CInt>, _ ptr3: Un

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc(_ ptr: UnsafeBufferPointer<CInt>, _ ptr2: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: if unsafe ptr2.count != len {
// CHECK-NEXT: fatalError("bounds check failure in myFunc: expected \(len) but got \(unsafe ptr2.count)")
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: if ptr2.count != len {
// CHECK-NEXT: fatalError("bounds check failure in myFunc: expected \(len) but got \(ptr2.count)")
// CHECK-NEXT: }
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, ptr2.baseAddress!, len)
// CHECK-NEXT: }

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc2(_ ptr: UnsafeBufferPointer<CInt>, _ ptr2: UnsafeBufferPointer<CInt>, _ size: CInt) {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let _ptr2Count = unsafe ptr2.count
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: let _ptr2Count = ptr2.count
// CHECK-NEXT: if _ptr2Count != len * size {
// CHECK-NEXT: fatalError("bounds check failure in myFunc2: expected \(len * size) but got \(_ptr2Count)")
// CHECK-NEXT: }
Expand All @@ -43,9 +43,9 @@ func myFunc5(_ ptr: UnsafePointer<CInt>, _ ptr2: UnsafePointer<CInt>, _ ptr3: Un

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc3(_ ptr: UnsafeBufferPointer<CInt>, _ ptr2: UnsafeBufferPointer<CInt>, _ ptr3: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let size = CInt(exactly: unsafe ptr2.count)!
// CHECK-NEXT: let _ptr3Count = unsafe ptr3.count
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: let size = CInt(exactly: ptr2.count)!
// CHECK-NEXT: let _ptr3Count = ptr3.count
// CHECK-NEXT: if _ptr3Count != len * size {
// CHECK-NEXT: fatalError("bounds check failure in myFunc3: expected \(len * size) but got \(_ptr3Count)")
// CHECK-NEXT: }
Expand All @@ -54,9 +54,9 @@ func myFunc5(_ ptr: UnsafePointer<CInt>, _ ptr2: UnsafePointer<CInt>, _ ptr3: Un

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc4(_ ptr: UnsafeBufferPointer<CInt>, _ ptr2: UnsafeBufferPointer<CInt>, _ ptr3: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let size = CInt(exactly: unsafe ptr2.count)!
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr3.count)!
// CHECK-NEXT: let _ptrCount = unsafe ptr.count
// CHECK-NEXT: let size = CInt(exactly: ptr2.count)!
// CHECK-NEXT: let len = CInt(exactly: ptr3.count)!
// CHECK-NEXT: let _ptrCount = ptr.count
// CHECK-NEXT: if _ptrCount != len * size {
// CHECK-NEXT: fatalError("bounds check failure in myFunc4: expected \(len * size) but got \(_ptrCount)")
// CHECK-NEXT: }
Expand All @@ -65,9 +65,9 @@ func myFunc5(_ ptr: UnsafePointer<CInt>, _ ptr2: UnsafePointer<CInt>, _ ptr3: Un

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc5(_ ptr: UnsafeBufferPointer<CInt>, _ ptr2: UnsafeBufferPointer<CInt>, _ ptr3: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let size = CInt(exactly: unsafe ptr2.count)!
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr3.count)!
// CHECK-NEXT: let _ptrCount = unsafe ptr.count
// CHECK-NEXT: let size = CInt(exactly: ptr2.count)!
// CHECK-NEXT: let len = CInt(exactly: ptr3.count)!
// CHECK-NEXT: let _ptrCount = ptr.count
// CHECK-NEXT: if _ptrCount != len * size {
// CHECK-NEXT: fatalError("bounds check failure in myFunc5: expected \(len * size) but got \(_ptrCount)")
// CHECK-NEXT: }
Expand Down
2 changes: 1 addition & 1 deletion test/Macros/SwiftifyImport/CountedBy/SimpleCount.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ func myFunc(_ ptr: UnsafePointer<CInt>, _ len: CInt) {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc(_ ptr: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, len)
// CHECK-NEXT: }
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ func myFunc(_ ptr1: UnsafePointer<CInt>, _ len1: CInt, _ ptr2: UnsafePointer<CIn
// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc(_ ptr1: Span<CInt>, _ ptr2: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let len1 = CInt(exactly: ptr1.count)!
// CHECK-NEXT: let len2 = CInt(exactly: unsafe ptr2.count)!
// CHECK-NEXT: let len2 = CInt(exactly: ptr2.count)!
// CHECK-NEXT: return unsafe ptr1.withUnsafeBufferPointer { _ptr1Ptr in
// CHECK-NEXT: return unsafe myFunc(_ptr1Ptr.baseAddress!, len1, ptr2.baseAddress!, len2)
// CHECK-NEXT: }
Expand Down
2 changes: 1 addition & 1 deletion test/Macros/SwiftifyImport/CountedBy/Unwrapped.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ func myFunc(_ ptr: UnsafePointer<CInt>!, _ len: CInt) {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc(_ ptr: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let len = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, len)
// CHECK-NEXT: }
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ func myFunc(_ ptr: UnsafePointer<CInt>, _ len: String) {
// expected-note@-3 2{{in expansion of macro '_SwiftifyImport' on global function 'myFunc' here}}

// expected-error@@__swiftmacro_4main6myFunc15_SwiftifyImportfMp_.swift:4:15{{no exact matches in call to initializer}}
// expected-error@@__swiftmacro_4main6myFunc15_SwiftifyImportfMp_.swift:4:48{{cannot force unwrap value of non-optional type 'String'}}
// expected-error@@__swiftmacro_4main6myFunc15_SwiftifyImportfMp_.swift:4:41{{cannot force unwrap value of non-optional type 'String'}}

// REQUIRES: swift_swift_parser
// RUN: %empty-directory(%t)
Expand All @@ -17,7 +17,7 @@ func myFunc(_ ptr: UnsafePointer<CInt>, _ len: String) {
// CHECK-NEXT:/// This is an auto-generated wrapper for safer interop
// CHECK-NEXT:@_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT:func myFunc(_ ptr: UnsafeBufferPointer<CInt>) {
// CHECK-NEXT: let len = String(exactly: unsafe ptr.count)!
// CHECK-NEXT: let len = String(exactly: ptr.count)!
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, len)
// CHECK-NEXT:}
// CHECK-NEXT:------------------------------
4 changes: 2 additions & 2 deletions test/Macros/SwiftifyImport/SizedBy/MultipleParams.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ func myFunc(_ ptr: UnsafeRawPointer, _ size: CInt, _ ptr2: UnsafeRawPointer, _ s

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc(_ ptr: UnsafeRawBufferPointer, _ ptr2: UnsafeRawBufferPointer) {
// CHECK-NEXT: let size = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let size2 = CInt(exactly: unsafe ptr2.count)!
// CHECK-NEXT: let size = CInt(exactly: ptr.count)!
// CHECK-NEXT: let size2 = CInt(exactly: ptr2.count)!
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, size, ptr2.baseAddress!, size2)
// CHECK-NEXT: }
2 changes: 1 addition & 1 deletion test/Macros/SwiftifyImport/SizedBy/Mutable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ func myFunc(_ ptr: UnsafeMutableRawPointer, _ size: CInt) {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc(_ ptr: UnsafeMutableRawBufferPointer) {
// CHECK-NEXT: let size = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let size = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, size)
// CHECK-NEXT: }
4 changes: 2 additions & 2 deletions test/Macros/SwiftifyImport/SizedBy/Opaque.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func impNullableSpan(_ ptr: OpaquePointer!, _ size: CInt) {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func nonnullUnsafeRawBufferPointer(_ ptr: UnsafeRawBufferPointer) {
// CHECK-NEXT: let size = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let size = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe nonnullUnsafeRawBufferPointer(OpaquePointer(ptr.baseAddress!), size)

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
Expand All @@ -39,7 +39,7 @@ func impNullableSpan(_ ptr: OpaquePointer!, _ size: CInt) {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func impNullableUnsafeRawBufferPointer(_ ptr: UnsafeRawBufferPointer) {
// CHECK-NEXT: let size = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let size = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe impNullableUnsafeRawBufferPointer(OpaquePointer(ptr.baseAddress!), size)
// CHECK-NEXT: }

Expand Down
4 changes: 2 additions & 2 deletions test/Macros/SwiftifyImport/SizedBy/PointerReturn.swift
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ func lifetimeDependentBorrowMut(_ p: borrowing UnsafeMutableRawPointer, _ len1:

// CHECK: @_alwaysEmitIntoClient @_lifetime(borrow p) @_disfavoredOverload
// CHECK-NEXT: func lifetimeDependentBorrow(_ p: borrowing UnsafeRawBufferPointer, _ len2: CInt) -> RawSpan {
// CHECK-NEXT: let len1 = CInt(exactly: unsafe p.count)!
// CHECK-NEXT: let len1 = CInt(exactly: p.count)!
// CHECK-NEXT: return unsafe _swiftifyOverrideLifetime(RawSpan(_unsafeStart: unsafe lifetimeDependentBorrow(p.baseAddress!, len1, len2), byteCount: Int(len2)), copying: ())
// CHECK-NEXT: }

Expand All @@ -61,6 +61,6 @@ func lifetimeDependentBorrowMut(_ p: borrowing UnsafeMutableRawPointer, _ len1:

// CHECK: @_alwaysEmitIntoClient @_lifetime(borrow p) @_disfavoredOverload
// CHECK-NEXT: func lifetimeDependentBorrowMut(_ p: borrowing UnsafeMutableRawBufferPointer, _ len2: CInt) -> MutableRawSpan {
// CHECK-NEXT: let len1 = CInt(exactly: unsafe p.count)!
// CHECK-NEXT: let len1 = CInt(exactly: p.count)!
// CHECK-NEXT: return unsafe _swiftifyOverrideLifetime(MutableRawSpan(_unsafeStart: unsafe lifetimeDependentBorrowMut(p.baseAddress!, len1, len2), byteCount: Int(len2)), copying: ())
// CHECK-NEXT: }
2 changes: 1 addition & 1 deletion test/Macros/SwiftifyImport/SizedBy/Return.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ func myFunc(_ ptr: UnsafeRawPointer, _ size: CInt) -> CInt {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc(_ ptr: UnsafeRawBufferPointer) -> CInt {
// CHECK-NEXT: let size = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let size = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, size)
// CHECK-NEXT: }
6 changes: 3 additions & 3 deletions test/Macros/SwiftifyImport/SizedBy/SharedCount.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ func myFunc(_ ptr: UnsafeRawPointer, _ ptr2: UnsafeRawPointer, _ size: CInt) {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc(_ ptr: UnsafeRawBufferPointer, _ ptr2: UnsafeRawBufferPointer) {
// CHECK-NEXT: let size = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: if unsafe ptr2.count != size {
// CHECK-NEXT: fatalError("bounds check failure in myFunc: expected \(size) but got \(unsafe ptr2.count)")
// CHECK-NEXT: let size = CInt(exactly: ptr.count)!
// CHECK-NEXT: if ptr2.count != size {
// CHECK-NEXT: fatalError("bounds check failure in myFunc: expected \(size) but got \(ptr2.count)")
// CHECK-NEXT: }
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, ptr2.baseAddress!, size)
// CHECK-NEXT: }
2 changes: 1 addition & 1 deletion test/Macros/SwiftifyImport/SizedBy/SimpleSize.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ func myFunc(_ ptr: UnsafeRawPointer, _ size: CInt) {

// CHECK: @_alwaysEmitIntoClient @_disfavoredOverload
// CHECK-NEXT: func myFunc(_ ptr: UnsafeRawBufferPointer) {
// CHECK-NEXT: let size = CInt(exactly: unsafe ptr.count)!
// CHECK-NEXT: let size = CInt(exactly: ptr.count)!
// CHECK-NEXT: return unsafe myFunc(ptr.baseAddress!, size)
// CHECK-NEXT: }
Loading