aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp4
-rw-r--r--test/Analysis/objc_invalidation.m3
2 files changed, 5 insertions, 2 deletions
diff --git a/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp b/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
index 527470a17c..4f2a9097b4 100644
--- a/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
@@ -233,7 +233,7 @@ void IvarInvalidationChecker::containsInvalidationMethod(
for (ObjCInterfaceDecl::protocol_iterator
I = InterfD->protocol_begin(),
E = InterfD->protocol_end(); I != E; ++I) {
- containsInvalidationMethod(*I, OutInfo);
+ containsInvalidationMethod((*I)->getDefinition(), OutInfo);
}
// Visit all categories in case the invalidation method is declared in
@@ -252,7 +252,7 @@ void IvarInvalidationChecker::containsInvalidationMethod(
for (ObjCInterfaceDecl::protocol_iterator
I = ProtD->protocol_begin(),
E = ProtD->protocol_end(); I != E; ++I) {
- containsInvalidationMethod(*I, OutInfo);
+ containsInvalidationMethod((*I)->getDefinition(), OutInfo);
}
return;
}
diff --git a/test/Analysis/objc_invalidation.m b/test/Analysis/objc_invalidation.m
index 15bcabec69..84028ddc2e 100644
--- a/test/Analysis/objc_invalidation.m
+++ b/test/Analysis/objc_invalidation.m
@@ -35,6 +35,9 @@ extern void NSLog(NSString *format, ...) __attribute__((format(__NSString__, 1,
- (void) invalidate2 __attribute__((annotate("objc_instance_variable_invalidator")));
@end
+@protocol Invalidation3;
+@protocol Invalidation2;
+
@interface Invalidation2Class <Invalidation2>
@end