From 64caf82375f4a7988a0b23fa54fc527944356d3c Mon Sep 17 00:00:00 2001 From: Jordan Rose Date: Mon, 19 Dec 2016 22:35:24 +0000 Subject: Don't try to emit nullability fix-its within/around macros. The newly-added notes from r290132 are too noisy even when the fix-it is valid. For the existing warning from r286521, it's probably the right decision 95% of the time to put the change outside the macro if the array is outside the macro and inside otherwise, but I don't want to overthink it right now. Caught by the ASan bot! More rdar://problem/29524992 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@290141 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/FixIt/Inputs/nullability.h | 8 ++++++++ test/FixIt/nullability.mm | 6 ++++++ 2 files changed, 14 insertions(+) (limited to 'test/FixIt') diff --git a/test/FixIt/Inputs/nullability.h b/test/FixIt/Inputs/nullability.h index 5dd5dfab3b..bdfa01e499 100644 --- a/test/FixIt/Inputs/nullability.h +++ b/test/FixIt/Inputs/nullability.h @@ -17,3 +17,11 @@ void arrayParameterWithStar(int x[*]); // expected-warning {{array parameter is // expected-note@-2 {{insert '_Nonnull'}} // CHECK: fix-it:"{{.*}}nullability.h":{[[@LINE-3]]:35-[[@LINE-3]]:35}:"_Nullable " // CHECK: fix-it:"{{.*}}nullability.h":{[[@LINE-4]]:35-[[@LINE-4]]:35}:"_Nonnull " + + +// No fix-its on either the macro definition or instantiation. +// CHECK-NOT: fix-it:"{{.*}}nullability.h":{[[@LINE+2]] +// CHECK-NOT: fix-it:"{{.*}}nullability.h":{[[@LINE+2]] +#define PTR(X) X * +PTR(int) a; // expected-warning{{pointer is missing a nullability type specifier}} +#undef PTR diff --git a/test/FixIt/nullability.mm b/test/FixIt/nullability.mm index eb900bb446..815c844192 100644 --- a/test/FixIt/nullability.mm +++ b/test/FixIt/nullability.mm @@ -16,6 +16,12 @@ extern void* array2[2]; // expected-warning {{inferring '_Nonnull' for pointer t extern void *nestedArray[2][3]; // expected-warning {{inferring '_Nonnull' for pointer type within array is deprecated}} // CHECK: fix-it:"{{.*}}nullability.mm":{[[@LINE-1]]:14-[[@LINE-1]]:14}:" _Nonnull " +// No fix-its on either the macro definition or instantiation. +// CHECK-NOT: fix-it:"{{.*}}nullability.mm":{[[@LINE+2]] +// CHECK-NOT: fix-it:"{{.*}}nullability.mm":{[[@LINE+2]] +#define PTR(X) X * +extern PTR(void) array[2]; // expected-warning {{inferring '_Nonnull' for pointer type within array is deprecated}} + typedef const void *CFTypeRef; -- cgit v1.2.1