diff options
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp | 4 | ||||
-rw-r--r-- | clang/test/Analysis/autoreleasewritechecker_test.m | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp index d53827b596e..3e85256b539 100644 --- a/clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp +++ b/clang/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/clang/test/Analysis/autoreleasewritechecker_test.m b/clang/test/Analysis/autoreleasewritechecker_test.m index 98348011b8e..32ba5943525 100644 --- a/clang/test/Analysis/autoreleasewritechecker_test.m +++ b/clang/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 + |