diff options
Diffstat (limited to 'clang')
| -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 +  | 

