diff options
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/FixIt/Inputs/nullability-objc.h | 48 | ||||
| -rw-r--r-- | clang/test/FixIt/nullability.mm | 2 | ||||
| -rw-r--r-- | clang/test/SemaObjCXX/Inputs/nullability-consistency-2.h | 2 |
3 files changed, 51 insertions, 1 deletions
diff --git a/clang/test/FixIt/Inputs/nullability-objc.h b/clang/test/FixIt/Inputs/nullability-objc.h new file mode 100644 index 00000000000..e3e6baafd66 --- /dev/null +++ b/clang/test/FixIt/Inputs/nullability-objc.h @@ -0,0 +1,48 @@ +@class Item; +@class Container<ObjectType>; +@protocol Protocol; + +// rdar://problem/34260995 +// The first pointer in the file is handled in a different way so need +// a separate test for this case even if the parameter type is the same as in +// objcIdParameterWithProtocol. +void objcIdParameterWithProtocolFirstInFile(id<Protocol> i); // expected-warning {{pointer is missing a nullability type specifier}} +// expected-note@-1 {{insert '_Nullable'}} +// expected-note@-2 {{insert '_Nonnull'}} +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-3]]:57-[[@LINE-3]]:57}:" _Nullable" +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-4]]:57-[[@LINE-4]]:57}:" _Nonnull" + +int * _Nonnull forceNullabilityWarningsObjC(void); + +void objcClassParameter(Item *i); // expected-warning {{pointer is missing a nullability type specifier}} +// expected-note@-1 {{insert '_Nullable'}} +// expected-note@-2 {{insert '_Nonnull'}} +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-3]]:31-[[@LINE-3]]:31}:" _Nullable " +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-4]]:31-[[@LINE-4]]:31}:" _Nonnull " + +void objcClassParameterWithProtocol(Item<Protocol> *i); // expected-warning {{pointer is missing a nullability type specifier}} +// expected-note@-1 {{insert '_Nullable'}} +// expected-note@-2 {{insert '_Nonnull'}} +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-3]]:53-[[@LINE-3]]:53}:" _Nullable " +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-4]]:53-[[@LINE-4]]:53}:" _Nonnull " + +// rdar://problem/34260995 +void objcIdParameterWithProtocol(id<Protocol> i); // expected-warning {{pointer is missing a nullability type specifier}} +// expected-note@-1 {{insert '_Nullable'}} +// expected-note@-2 {{insert '_Nonnull'}} +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-3]]:46-[[@LINE-3]]:46}:" _Nullable" +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-4]]:46-[[@LINE-4]]:46}:" _Nonnull" + +// Class parameters don't have nullability type specifier. +void objcParameterizedClassParameter(Container<Item *> *c); // expected-warning {{pointer is missing a nullability type specifier}} +// expected-note@-1 {{insert '_Nullable'}} +// expected-note@-2 {{insert '_Nonnull'}} +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-3]]:57-[[@LINE-3]]:57}:" _Nullable " +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-4]]:57-[[@LINE-4]]:57}:" _Nonnull " + +// Class parameters don't have nullability type specifier. +void objcParameterizedClassParameterWithProtocol(Container<id<Protocol>> *c); // expected-warning {{pointer is missing a nullability type specifier}} +// expected-note@-1 {{insert '_Nullable'}} +// expected-note@-2 {{insert '_Nonnull'}} +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-3]]:75-[[@LINE-3]]:75}:" _Nullable " +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-4]]:75-[[@LINE-4]]:75}:" _Nonnull " diff --git a/clang/test/FixIt/nullability.mm b/clang/test/FixIt/nullability.mm index 815c8441924..a91ccc0f5f6 100644 --- a/clang/test/FixIt/nullability.mm +++ b/clang/test/FixIt/nullability.mm @@ -2,8 +2,10 @@ // RUN: not %clang_cc1 -fdiagnostics-parseable-fixits -fblocks -std=gnu++11 -I %S/Inputs %s >%t.txt 2>&1 // RUN: FileCheck %s < %t.txt // RUN: FileCheck %S/Inputs/nullability.h < %t.txt +// RUN: FileCheck %S/Inputs/nullability-objc.h < %t.txt #include "nullability.h" +#include "nullability-objc.h" #pragma clang assume_nonnull begin diff --git a/clang/test/SemaObjCXX/Inputs/nullability-consistency-2.h b/clang/test/SemaObjCXX/Inputs/nullability-consistency-2.h index 72f22e2ce47..84a1369618a 100644 --- a/clang/test/SemaObjCXX/Inputs/nullability-consistency-2.h +++ b/clang/test/SemaObjCXX/Inputs/nullability-consistency-2.h @@ -6,9 +6,9 @@ void g2(int (^block)(int, int)); // expected-warning{{block pointer is missing a void g3(const id // expected-warning{{missing a nullability type specifier}} + volatile // expected-note@-1 {{insert '_Nullable' if the pointer may be null}} // expected-note@-2 {{insert '_Nonnull' if the pointer should never be null}} - volatile * // expected-warning{{missing a nullability type specifier}} // expected-note@-1 {{insert '_Nullable' if the pointer may be null}} // expected-note@-2 {{insert '_Nonnull' if the pointer should never be null}} |

