diff options
Diffstat (limited to 'test/Sema/nullability.c')
-rw-r--r-- | test/Sema/nullability.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/test/Sema/nullability.c b/test/Sema/nullability.c index 59644c4..bbe5cb4 100644 --- a/test/Sema/nullability.c +++ b/test/Sema/nullability.c @@ -47,6 +47,7 @@ typedef _Nonnull int *(^ block_type_3)(int, int); typedef _Nonnull int *(* function_pointer_type_3)(int, int); typedef _Nonnull int_ptr (^ block_type_4)(int, int); typedef _Nonnull int_ptr (* function_pointer_type_4)(int, int); +typedef void (* function_pointer_type_5)(int_ptr _Nonnull); void acceptFunctionPtr(_Nonnull int *(*)(void)); void acceptBlockPtr(_Nonnull int *(^)(void)); @@ -55,7 +56,8 @@ void testBlockFunctionPtrNullability() { float *fp; fp = (function_pointer_type_3)0; // expected-warning{{from 'function_pointer_type_3' (aka 'int * _Nonnull (*)(int, int)')}} fp = (block_type_3)0; // expected-error{{from incompatible type 'block_type_3' (aka 'int * _Nonnull (^)(int, int)')}} - fp = (function_pointer_type_4)0; // expected-warning{{from 'function_pointer_type_4' (aka 'int_ptr _Nonnull (*)(int, int)')}} + fp = (function_pointer_type_4)0; // expected-warning{{from 'function_pointer_type_4' (aka 'int * _Nonnull (*)(int, int)')}} + fp = (function_pointer_type_5)0; // expected-warning{{from 'function_pointer_type_5' (aka 'void (*)(int * _Nonnull)')}} fp = (block_type_4)0; // expected-error{{from incompatible type 'block_type_4' (aka 'int_ptr _Nonnull (^)(int, int)')}} acceptFunctionPtr(0); // no-warning @@ -110,4 +112,7 @@ _Nonnull int *returns_int_ptr(int x) { void nullable_to_nonnull(_Nullable int *ptr) { int *a = ptr; // okay _Nonnull int *b = ptr; // expected-warning{{implicit conversion from nullable pointer 'int * _Nullable' to non-nullable pointer type 'int * _Nonnull'}} + b = ptr; // expected-warning{{implicit conversion from nullable pointer 'int * _Nullable' to non-nullable pointer type 'int * _Nonnull'}} + + accepts_nonnull_1(ptr); // expected-warning{{implicit conversion from nullable pointer 'int * _Nullable' to non-nullable pointer type 'int * _Nonnull'}} } |