Skip to content

Commit a8032fa

Browse files
committed
Revert "PrintAsObjC Test: Don't use blocks in the @cdecl test"
This reverts commit 5e7887d.
1 parent ee8d2a5 commit a8032fa

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

test/PrintAsObjC/cdecl-official.swift

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,30 @@ func c_keywordArgNames(auto: Int, union: Int) {}
4343
func d_returnNever() -> Never { fatalError() }
4444
// CHECK-LABEL: SWIFT_EXTERN void return_never(void) SWIFT_NOEXCEPT SWIFT_NORETURN;
4545

46+
@cdecl("block_nightmare")
47+
public func s_block_nightmare(x: @convention(block) (Int) -> Float)
48+
-> @convention(block) (CChar) -> Double { return { _ in 0 } }
49+
// CHECK-LABEL: SWIFT_EXTERN double (^ _Nonnull block_nightmare(SWIFT_NOESCAPE float (^ _Nonnull x)(ptrdiff_t)))(char) SWIFT_NOEXCEPT SWIFT_WARN_UNUSED_RESULT;
50+
51+
@cdecl("block_recurring_nightmare")
52+
public func t_block_recurring_nightmare(x: @escaping @convention(block) (@convention(block) (Double) -> Int) -> Float)
53+
-> @convention(block) (_ asdfasdf: @convention(block) (CUnsignedChar) -> CChar) -> Double {
54+
fatalError()
55+
}
56+
// CHECK-LABEL: SWIFT_EXTERN double (^ _Nonnull block_recurring_nightmare(float (^ _Nonnull x)(SWIFT_NOESCAPE ptrdiff_t (^ _Nonnull)(double))))(SWIFT_NOESCAPE char (^ _Nonnull)(unsigned char)) SWIFT_NOEXCEPT SWIFT_WARN_UNUSED_RESULT;
57+
58+
@cdecl("function_pointer_nightmare")
59+
func u_function_pointer_nightmare(x: @convention(c) (Int) -> Float)
60+
-> @convention(c) (CChar) -> Double { return { _ in 0 } }
61+
// CHECK-LABEL: SWIFT_EXTERN double (* _Nonnull function_pointer_nightmare(float (* _Nonnull x)(ptrdiff_t)))(char) SWIFT_NOEXCEPT SWIFT_WARN_UNUSED_RESULT;
62+
63+
@cdecl("function_pointer_recurring_nightmare")
64+
public func v_function_pointer_recurring_nightmare(x: @escaping @convention(c) (@convention(c) (Double) -> Int) -> Float)
65+
-> @convention(c) (@convention(c) (CUnsignedChar) -> CChar) -> Double {
66+
fatalError()
67+
}
68+
// CHECK-LABEL: SWIFT_EXTERN double (* _Nonnull function_pointer_recurring_nightmare(float (* _Nonnull x)(ptrdiff_t (* _Nonnull)(double))))(char (* _Nonnull)(unsigned char)) SWIFT_NOEXCEPT SWIFT_WARN_UNUSED_RESULT;
69+
4670
// CHECK: #if defined(__cplusplus)
4771
// CHECK-NEXT: }
4872
// CHECK-NEXT: #endif

0 commit comments

Comments
 (0)