From: George Karpenkov Date: Fri, 11 May 2018 20:39:19 +0000 (+0000) Subject: [analyzer] Ignore the nullability quantifiers for autoreleasewritechecker X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1e21071b941a69bc5c65921026fa77c4162e4351;p=clang [analyzer] Ignore the nullability quantifiers for autoreleasewritechecker git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@332136 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp b/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp index d53827b596..3e85256b53 100644 --- a/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp @@ -160,8 +160,8 @@ void ObjCAutoreleaseWriteChecker::checkASTCodeBody(const Decl *D, )); auto DoublePointerParamM = - parmVarDecl(hasType(pointerType( - pointee(hasCanonicalType(objcObjectPointerType()))))) + parmVarDecl(hasType(hasCanonicalType(pointerType( + pointee(hasCanonicalType(objcObjectPointerType())))))) .bind(ParamBind); auto HasParamAndWritesAsyncM = allOf( diff --git a/test/Analysis/autoreleasewritechecker_test.m b/test/Analysis/autoreleasewritechecker_test.m index 98348011b8..32ba594352 100644 --- a/test/Analysis/autoreleasewritechecker_test.m +++ b/test/Analysis/autoreleasewritechecker_test.m @@ -204,4 +204,11 @@ BOOL writeToErrorWithIterator(NSError *__autoreleasing* error, NSArray *a, NSSet }]; return 0; } + +void writeToErrorWithIteratorNonnull(NSError *__autoreleasing* _Nonnull error, NSDictionary *a) { + [a enumerateKeysAndObjectsUsingBlock:^{ + *error = [NSError errorWithDomain:1]; // expected-warning{{Write to autoreleasing out parameter}} + }]; +} #endif +