r261945 - [analyzer] Shorten ObjcSuperDeallocChecker diagnostics.
Devin Coughlin via cfe-commits
cfe-commits at lists.llvm.org
Thu Feb 25 16:47:43 PST 2016
Author: dcoughlin
Date: Thu Feb 25 18:47:42 2016
New Revision: 261945
URL: http://llvm.org/viewvc/llvm-project?rev=261945&view=rev
Log:
[analyzer] Shorten ObjcSuperDeallocChecker diagnostics.
Change "use of 'self' after it has been freed with call to [super dealloc]" to
"use of 'self' after it has been deallocated" and "use of instance variable
'_ivar' after the instance has been freed with call to [super dealloc]" to
"use of instance variable '_ivar' after 'self' has been deallocated".
Modified:
cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp
cfe/trunk/test/Analysis/DeallocUseAfterFreeErrors.m
Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp?rev=261945&r1=261944&r2=261945&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp Thu Feb 25 18:47:42 2016
@@ -166,7 +166,7 @@ void ObjCSuperDeallocChecker::checkLocat
llvm::raw_string_ostream OS(Buf);
if (IvarRegion) {
OS << "use of instance variable '" << *IvarRegion->getDecl() <<
- "' after the instance has been freed with call to [super dealloc]";
+ "' after 'self' has been deallocated";
Desc = OS.str();
}
@@ -189,7 +189,7 @@ void ObjCSuperDeallocChecker::reportUseA
return;
if (Desc.empty())
- Desc = "use of 'self' after it has been freed with call to [super dealloc]";
+ Desc = "use of 'self' after it has been deallocated";
// Generate the report.
std::unique_ptr<BugReport> BR(
Modified: cfe/trunk/test/Analysis/DeallocUseAfterFreeErrors.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/DeallocUseAfterFreeErrors.m?rev=261945&r1=261944&r2=261945&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/DeallocUseAfterFreeErrors.m (original)
+++ cfe/trunk/test/Analysis/DeallocUseAfterFreeErrors.m Thu Feb 25 18:47:42 2016
@@ -36,8 +36,8 @@ typedef struct objc_selector *SEL;
}
- (void)dealloc {
[super dealloc]; // expected-note {{[super dealloc] called here}}
- [_ivar release]; // expected-warning {{use of instance variable '_ivar' after the instance has been freed with call to [super dealloc]}}
- // expected-note at -1 {{use of instance variable '_ivar' after the instance has been freed with call to [super dealloc]}}
+ [_ivar release]; // expected-warning {{use of instance variable '_ivar' after 'self' has been deallocated}}
+ // expected-note at -1 {{use of instance variable '_ivar' after 'self' has been deallocated}}
}
@end
@@ -56,8 +56,8 @@ typedef struct objc_selector *SEL;
}
- (void)dealloc {
[super dealloc]; // expected-note {{[super dealloc] called here}}
- _delegate = nil; // expected-warning {{use of instance variable '_delegate' after the instance has been freed with call to [super dealloc]}}
- // expected-note at -1 {{use of instance variable '_delegate' after the instance has been freed with call to [super dealloc]}}
+ _delegate = nil; // expected-warning {{use of instance variable '_delegate' after 'self' has been deallocated}}
+ // expected-note at -1 {{use of instance variable '_delegate' after 'self' has been deallocated}}
}
@end
@@ -74,8 +74,8 @@ struct SomeStruct {
@implementation SuperDeallocThenAssignIvarField
- (void)dealloc {
[super dealloc]; // expected-note {{[super dealloc] called here}}
- _s.f = 7; // expected-warning {{use of instance variable '_s' after the instance has been freed with call to [super dealloc]}}
- // expected-note at -1 {{use of instance variable '_s' after the instance has been freed with call to [super dealloc]}}
+ _s.f = 7; // expected-warning {{use of instance variable '_s' after 'self' has been deallocated}}
+ // expected-note at -1 {{use of instance variable '_s' after 'self' has been deallocated}}
}
@end
@@ -93,8 +93,21 @@ struct SomeStruct {
@implementation SuperDeallocThenAssignIvarIvar
- (void)dealloc {
[super dealloc]; // expected-note {{[super dealloc] called here}}
- _ivar->_otherIvar = 7; // expected-warning {{use of instance variable '_ivar' after the instance has been freed with call to [super dealloc]}}
- // expected-note at -1 {{use of instance variable '_ivar' after the instance has been freed with call to [super dealloc]}}
+ _ivar->_otherIvar = 7; // expected-warning {{use of instance variable '_ivar' after 'self' has been deallocated}}
+ // expected-note at -1 {{use of instance variable '_ivar' after 'self' has been deallocated}}
+}
+ at end
+
+ at interface SuperDeallocThenAssignSelfIvar : NSObject {
+ NSObject *_ivar;
+}
+ at end
+
+ at implementation SuperDeallocThenAssignSelfIvar
+- (void)dealloc {
+ [super dealloc]; // expected-note {{[super dealloc] called here}}
+ self->_ivar = nil; // expected-warning {{use of instance variable '_ivar' after 'self' has been deallocated}}
+ // expected-note at -1 {{use of instance variable '_ivar' after 'self' has been deallocated}}
}
@end
@@ -112,8 +125,8 @@ struct SomeStruct {
}
- (void)dealloc {
[super dealloc]; // expected-note {{[super dealloc] called here}}
- self.ivar = nil; // expected-warning {{use of 'self' after it has been freed with call to [super dealloc]}}
- // expected-note at -1 {{use of 'self' after it has been freed with call to [super dealloc]}}
+ self.ivar = nil; // expected-warning {{use of 'self' after it has been deallocated}}
+ // expected-note at -1 {{use of 'self' after it has been deallocated}}
}
@end
@@ -131,8 +144,8 @@ struct SomeStruct {
}
- (void)dealloc {
[super dealloc]; // expected-note {{[super dealloc] called here}}
- self.delegate = nil; // expected-warning {{use of 'self' after it has been freed with call to [super dealloc]}}
- // expected-note at -1 {{use of 'self' after it has been freed with call to [super dealloc]}}
+ self.delegate = nil; // expected-warning {{use of 'self' after it has been deallocated}}
+ // expected-note at -1 {{use of 'self' after it has been deallocated}}
}
@end
@@ -145,8 +158,8 @@ struct SomeStruct {
}
- (void)dealloc {
[super dealloc]; // expected-note {{[super dealloc] called here}}
- [self _invalidate]; // expected-warning {{use of 'self' after it has been freed with call to [super dealloc]}}
- // expected-note at -1 {{use of 'self' after it has been freed with call to [super dealloc]}}
+ [self _invalidate]; // expected-warning {{use of 'self' after it has been deallocated}}
+ // expected-note at -1 {{use of 'self' after it has been deallocated}}
}
@end
@@ -160,8 +173,8 @@ static void _invalidate(NSObject *object
@implementation SuperDeallocThenCallNonObjectiveCMethodClass
- (void)dealloc {
[super dealloc]; // expected-note {{[super dealloc] called here}}
- _invalidate(self); // expected-warning {{use of 'self' after it has been freed with call to [super dealloc]}}
- // expected-note at -1 {{use of 'self' after it has been freed with call to [super dealloc]}}
+ _invalidate(self); // expected-warning {{use of 'self' after it has been deallocated}}
+ // expected-note at -1 {{use of 'self' after it has been deallocated}}
}
@end
@@ -174,8 +187,8 @@ static void _invalidate(NSObject *object
- (void)dealloc {
[super dealloc]; // expected-note {{[super dealloc] called here}}
- [SuperDeallocThenCallObjectiveClassMethodClass invalidate:self]; // expected-warning {{use of 'self' after it has been freed with call to [super dealloc]}}
- // expected-note at -1 {{use of 'self' after it has been freed with call to [super dealloc]}}
+ [SuperDeallocThenCallObjectiveClassMethodClass invalidate:self]; // expected-warning {{use of 'self' after it has been deallocated}}
+ // expected-note at -1 {{use of 'self' after it has been deallocated}}
}
@end
@@ -195,8 +208,8 @@ static void _invalidate(NSObject *object
return;
}
[super dealloc]; // expected-note {{[super dealloc] called here}}
- [self _invalidate]; // expected-warning {{use of 'self' after it has been freed with call to [super dealloc]}}
- // expected-note at -1 {{use of 'self' after it has been freed with call to [super dealloc]}}
+ [self _invalidate]; // expected-warning {{use of 'self' after it has been deallocated}}
+ // expected-note at -1 {{use of 'self' after it has been deallocated}}
}
@end
@@ -353,8 +366,8 @@ static void _invalidate(NSObject *object
- (void)dealloc; {
[super dealloc]; // expected-note {{[super dealloc] called here}}
- [self anotherMethod]; // expected-warning {{use of 'self' after it has been freed with call to [super dealloc]}}
- // expected-note at -1 {{use of 'self' after it has been freed with call to [super dealloc]}}
+ [self anotherMethod]; // expected-warning {{use of 'self' after it has been deallocated}}
+ // expected-note at -1 {{use of 'self' after it has been deallocated}}
[super dealloc];
}
@end
More information about the cfe-commits
mailing list