forked from OSchip/llvm-project
[analyzer] Fix assertion in ReturnVisitor for body-farm synthesized getters
Don't emit a path note marking the return site if the return statement does not have a valid location. This fixes an assertion failure I introduced in r265839. llvm-svn: 266031
This commit is contained in:
parent
5933eb84d3
commit
b40d14f3d5
|
@ -324,6 +324,9 @@ public:
|
|||
}
|
||||
|
||||
PathDiagnosticLocation L(Ret, BRC.getSourceManager(), StackFrame);
|
||||
if (!L.isValid() || !L.asLocation().isValid())
|
||||
return nullptr;
|
||||
|
||||
return new PathDiagnosticEventPiece(L, Out.str());
|
||||
}
|
||||
|
||||
|
|
|
@ -45,6 +45,8 @@ __attribute__((objc_root_class))
|
|||
|
||||
@property(readonly) int *propertyReturningNull;
|
||||
|
||||
@property(readonly) int *synthesizedProperty;
|
||||
|
||||
@end
|
||||
|
||||
@implementation SomeClass
|
||||
|
@ -72,3 +74,14 @@ void testPropertyReturningNull(SomeClass *sc) {
|
|||
// expected-warning@-2 {{Dereference of null pointer}}
|
||||
#endif
|
||||
}
|
||||
|
||||
void testSynthesizedPropertyReturningNull(SomeClass *sc) {
|
||||
if (sc.synthesizedProperty)
|
||||
return;
|
||||
|
||||
int *result = sc.synthesizedProperty;
|
||||
*result = 1;
|
||||
#ifndef SUPPRESSED
|
||||
// expected-warning@-2 {{Dereference of null pointer}}
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue