]> granicus.if.org Git - clang/commitdiff
[analyzer] Ignore the nullability quantifiers for autoreleasewritechecker
authorGeorge Karpenkov <ekarpenkov@apple.com>
Fri, 11 May 2018 20:39:19 +0000 (20:39 +0000)
committerGeorge Karpenkov <ekarpenkov@apple.com>
Fri, 11 May 2018 20:39:19 +0000 (20:39 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@332136 91177308-0d34-0410-b5e6-96231b3b80d8

lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp
test/Analysis/autoreleasewritechecker_test.m

index d53827b596ee9467a536fff1ee7057849d4ad033..3e85256b53931e2bd89b7a5744a1cd236f1a482b 100644 (file)
@@ -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(
index 98348011b8ef2be85814c23ddf6efb18449e01c7..32ba5943525c0f937741d1b6852b3ea651a40194 100644 (file)
@@ -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
+