summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp4
-rw-r--r--clang/test/Analysis/autoreleasewritechecker_test.m7
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
+
OpenPOWER on IntegriCloud