Index: lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp =================================================================== --- lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp +++ lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp @@ -324,6 +324,10 @@ TrackedNullabPrev->getValue() == TrackedNullab->getValue()) return nullptr; + if (N->getLocationContext()->getAnalysisDeclContext() + ->isBodyAutosynthesized()) + return nullptr; + // Retrieve the associated statement. const Stmt *S = TrackedNullab->getNullabilitySource(); if (!S) { Index: test/Analysis/nullability.mm =================================================================== --- test/Analysis/nullability.mm +++ test/Analysis/nullability.mm @@ -525,3 +525,15 @@ return nil; // no-warning } @end + +void takesNonnull(NSObject *_Nonnull y); + +@interface ClassWithProperties: NSObject +@property(copy, nullable) NSObject *x; +-(void) method; +@end; +@implementation ClassWithProperties +-(void) method { + takesNonnull(self.x); // expected-warning{{Nullable pointer is passed to a callee that requires a non-null 1st parameter}} +} +@end