r283181 - Revert "[analyzer] Add extra notes to ObjCDeallocChecker" as its depends on reverted r283092
Vitaly Buka via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 3 19:36:59 PDT 2016
Author: vitalybuka
Date: Mon Oct 3 21:36:58 2016
New Revision: 283181
URL: http://llvm.org/viewvc/llvm-project?rev=283181&view=rev
Log:
Revert "[analyzer] Add extra notes to ObjCDeallocChecker" as its depends on reverted r283092
This reverts commit r283093.
Modified:
cfe/trunk/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
cfe/trunk/test/Analysis/DeallocMissingRelease.m
cfe/trunk/test/Analysis/PR2978.m
cfe/trunk/test/Analysis/properties.m
Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp?rev=283181&r1=283180&r2=283181&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp Mon Oct 3 21:36:58 2016
@@ -107,9 +107,6 @@ class ObjCDeallocChecker
std::unique_ptr<BugType> ExtraReleaseBugType;
std::unique_ptr<BugType> MistakenDeallocBugType;
- static constexpr const char *MsgDeclared = "Property is declared here";
- static constexpr const char *MsgSynthesized = "Property is synthesized here";
-
public:
ObjCDeallocChecker();
@@ -131,9 +128,6 @@ public:
void checkEndFunction(CheckerContext &Ctx) const;
private:
- void addNoteForDecl(std::unique_ptr<BugReport> &BR, StringRef Msg,
- const Decl *D) const;
-
void diagnoseMissingReleases(CheckerContext &C) const;
bool diagnoseExtraRelease(SymbolRef ReleasedValue, const ObjCMethodCall &M,
@@ -495,18 +489,6 @@ ProgramStateRef ObjCDeallocChecker::chec
return State;
}
-/// Add an extra note piece describing a declaration that is important
-/// for understanding the bug report.
-void ObjCDeallocChecker::addNoteForDecl(std::unique_ptr<BugReport> &BR,
- StringRef Msg,
- const Decl *D) const {
- ASTContext &ACtx = D->getASTContext();
- SourceManager &SM = ACtx.getSourceManager();
- PathDiagnosticLocation Pos = PathDiagnosticLocation::createBegin(D, SM);
- if (Pos.isValid() && Pos.asLocation().isValid())
- BR->addNote(Msg, Pos, D->getSourceRange());
-}
-
/// Report any unreleased instance variables for the current instance being
/// dealloced.
void ObjCDeallocChecker::diagnoseMissingReleases(CheckerContext &C) const {
@@ -604,9 +586,6 @@ void ObjCDeallocChecker::diagnoseMissing
std::unique_ptr<BugReport> BR(
new BugReport(*MissingReleaseBugType, OS.str(), ErrNode));
- addNoteForDecl(BR, MsgDeclared, PropDecl);
- addNoteForDecl(BR, MsgSynthesized, PropImpl);
-
C.emitReport(std::move(BR));
}
@@ -710,12 +689,11 @@ bool ObjCDeallocChecker::diagnoseExtraRe
);
const ObjCImplDecl *Container = getContainingObjCImpl(C.getLocationContext());
- const ObjCIvarDecl *IvarDecl = PropImpl->getPropertyIvarDecl();
- OS << "The '" << *IvarDecl << "' ivar in '" << *Container;
+ OS << "The '" << *PropImpl->getPropertyIvarDecl()
+ << "' ivar in '" << *Container;
- bool ReleasedByCIFilterDealloc = isReleasedByCIFilterDealloc(PropImpl);
- if (ReleasedByCIFilterDealloc) {
+ if (isReleasedByCIFilterDealloc(PropImpl)) {
OS << "' will be released by '-[CIFilter dealloc]' but also released here";
} else {
OS << "' was synthesized for ";
@@ -732,10 +710,6 @@ bool ObjCDeallocChecker::diagnoseExtraRe
new BugReport(*ExtraReleaseBugType, OS.str(), ErrNode));
BR->addRange(M.getOriginExpr()->getSourceRange());
- addNoteForDecl(BR, MsgDeclared, PropDecl);
- if (!ReleasedByCIFilterDealloc)
- addNoteForDecl(BR, MsgSynthesized, PropImpl);
-
C.emitReport(std::move(BR));
return true;
Modified: cfe/trunk/test/Analysis/DeallocMissingRelease.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/DeallocMissingRelease.m?rev=283181&r1=283180&r2=283181&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/DeallocMissingRelease.m (original)
+++ cfe/trunk/test/Analysis/DeallocMissingRelease.m Mon Oct 3 21:36:58 2016
@@ -80,9 +80,6 @@
@interface MyPropertyClass1 : NSObject
@property (copy) NSObject *ivar;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@end
@implementation MyPropertyClass1
@@ -96,9 +93,6 @@
@interface MyPropertyClass2 : NSObject
@property (retain) NSObject *ivar;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@end
@implementation MyPropertyClass2
@@ -114,16 +108,10 @@
NSObject *_ivar;
}
@property (retain) NSObject *ivar;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@end
@implementation MyPropertyClass3
@synthesize ivar = _ivar;
-#if NON_ARC
-// expected-note at -2 {{Property is synthesized here}}
-#endif
- (void)dealloc
{
#if NON_ARC
@@ -137,9 +125,6 @@
void (^_blockPropertyIvar)(void);
}
@property (copy) void (^blockProperty)(void);
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@property (copy) void (^blockProperty2)(void);
@property (copy) void (^blockProperty3)(void);
@@ -147,9 +132,6 @@
@implementation MyPropertyClass4
@synthesize blockProperty = _blockPropertyIvar;
-#if NON_ARC
-// expected-note at -2 {{Property is synthesized here}}
-#endif
- (void)dealloc
{
#if NON_ARC
@@ -181,16 +163,10 @@
NSObject *_ivar;
}
@property (retain) NSObject *ivar;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@end
@implementation MyPropertyClassWithReturnInDealloc
@synthesize ivar = _ivar;
-#if NON_ARC
-// expected-note at -2 {{Property is synthesized here}}
-#endif
- (void)dealloc
{
return;
@@ -206,18 +182,12 @@
MyPropertyClassWithReleaseInOtherInstance *_other;
}
@property (retain) NSObject *ivar;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
-(void)releaseIvars;
@end
@implementation MyPropertyClassWithReleaseInOtherInstance
@synthesize ivar = _ivar;
-#if NON_ARC
-// expected-note at -2 {{Property is synthesized here}}
-#endif
-(void)releaseIvars; {
#if NON_ARC
@@ -238,16 +208,10 @@
NSObject *_ivar;
}
@property (retain) NSObject *ivar;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@end
@implementation MyPropertyClassWithNeitherReturnNorSuperDealloc
@synthesize ivar = _ivar;
-#if NON_ARC
-// expected-note at -2 {{Property is synthesized here}}
-#endif
- (void)dealloc
{
}
@@ -282,9 +246,6 @@
BOOL _ivar1;
}
@property (retain) NSObject *ivar2;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@end
@implementation ClassWithControlFlowInRelease
@@ -326,9 +287,6 @@
@interface ClassWithNildOutIvar : NSObject
@property (retain) NSObject *ivar;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@end
@implementation ClassWithNildOutIvar
@@ -347,9 +305,6 @@
@interface ClassWithUpdatedIvar : NSObject
@property (retain) NSObject *ivar;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@end
@implementation ClassWithUpdatedIvar
@@ -394,9 +349,6 @@
@property (retain) NSObject *propNilledOutInFunction;
@property (retain) NSObject *ivarNeverReleased;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
- (void)invalidateInMethod;
@end
@@ -473,9 +425,6 @@ void NilOutPropertyHelper(ClassWithDeall
@interface ClassWhereSelfEscapesViaSynthesizedPropertyAccess : NSObject
@property (retain) NSObject *ivar;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@property (retain) NSObject *otherIvar;
@end
@@ -493,9 +442,6 @@ void NilOutPropertyHelper(ClassWithDeall
@interface ClassWhereSelfEscapesViaCallToSystem : NSObject
@property (retain) NSObject *ivar1;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@property (retain) NSObject *ivar2;
@property (retain) NSObject *ivar3;
@property (retain) NSObject *ivar4;
@@ -590,9 +536,6 @@ void ReleaseMe(id arg);
@interface SuperClassOfClassWithInlinedSuperDealloc : NSObject
@property (retain) NSObject *propInSuper;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@end
@implementation SuperClassOfClassWithInlinedSuperDealloc
@@ -605,9 +548,6 @@ void ReleaseMe(id arg);
@interface ClassWithInlinedSuperDealloc : SuperClassOfClassWithInlinedSuperDealloc
@property (retain) NSObject *propInSub;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@end
@implementation ClassWithInlinedSuperDealloc
@@ -665,9 +605,6 @@ void ReleaseMe(id arg);
@interface SuperClassOfClassThatEscapesBeforeInliningSuper : NSObject
@property (retain) NSObject *propInSuper;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@end
@implementation SuperClassOfClassThatEscapesBeforeInliningSuper
@@ -857,9 +794,6 @@ __attribute__((objc_root_class))
@property(retain) NSObject *inputIvar;
@property(retain) NSObject *nonInputIvar;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@property(retain) NSObject *inputAutoSynthesizedIvar;
@property(retain) NSObject *inputExplicitlySynthesizedToNonPrefixedIvar;
@property(retain) NSObject *nonPrefixedPropertyBackedByExplicitlySynthesizedPrefixedIvar;
@@ -869,9 +803,6 @@ __attribute__((objc_root_class))
@implementation ImmediateSubCIFilter
@synthesize inputIvar = inputIvar;
@synthesize nonInputIvar = nonInputIvar;
-#if NON_ARC
-// expected-note at -2 {{Property is synthesized here}}
-#endif
@synthesize inputExplicitlySynthesizedToNonPrefixedIvar = notPrefixedButBackingPrefixedProperty;
@synthesize nonPrefixedPropertyBackedByExplicitlySynthesizedPrefixedIvar = inputPrefixedButBackingNonPrefixedProperty;
@@ -910,9 +841,6 @@ __attribute__((objc_root_class))
}
@property(retain) NSObject *inputIvar;
-#if NON_ARC
-// expected-note at -2 {{Property is declared here}}
-#endif
@end
@implementation OverreleasingCIFilter
Modified: cfe/trunk/test/Analysis/PR2978.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/PR2978.m?rev=283181&r1=283180&r2=283181&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/PR2978.m (original)
+++ cfe/trunk/test/Analysis/PR2978.m Mon Oct 3 21:36:58 2016
@@ -29,22 +29,22 @@
id _nonPropertyIvar;
}
@property(retain) id X;
- at property(retain) id Y; // expected-note{{Property is declared here}}
- at property(assign) id Z; // expected-note{{Property is declared here}}
+ at property(retain) id Y;
+ at property(assign) id Z;
@property(assign) id K;
@property(weak) id L;
@property(readonly) id N;
@property(retain) id M;
@property(weak) id P;
- at property(weak) id Q; // expected-note{{Property is declared here}}
+ at property(weak) id Q;
@property(retain) id R;
- at property(weak, readonly) id S; // expected-note{{Property is declared here}}
+ at property(weak, readonly) id S;
@property(assign, readonly) id T; // Shadowed in class extension
@property(assign) id U;
@property(retain) id V;
- at property(retain) id W; // expected-note{{Property is declared here}}
+ at property(retain) id W;
-(id) O;
-(void) setO: (id) arg;
@end
@@ -56,16 +56,16 @@
@implementation MyClass
@synthesize X = _X;
- at synthesize Y = _Y; // expected-note{{Property is synthesized here}}
- at synthesize Z = _Z; // expected-note{{Property is synthesized here}}
+ at synthesize Y = _Y;
+ at synthesize Z = _Z;
@synthesize K = _K;
@synthesize L = _L;
@synthesize N = _N;
@synthesize M = _M;
- at synthesize Q = _Q; // expected-note{{Property is synthesized here}}
+ at synthesize Q = _Q;
@synthesize R = _R;
@synthesize V = _V;
- at synthesize W = _W; // expected-note{{Property is synthesized here}}
+ at synthesize W = _W;
-(id) O{ return 0; }
-(void) setO:(id)arg { }
Modified: cfe/trunk/test/Analysis/properties.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/properties.m?rev=283181&r1=283180&r2=283181&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/properties.m (original)
+++ cfe/trunk/test/Analysis/properties.m Mon Oct 3 21:36:58 2016
@@ -134,17 +134,11 @@ NSNumber* numberFromMyNumberProperty(MyN
NSString *_name;
}
@property (retain) NSString * name;
-#if !__has_feature(objc_arc)
-// expected-note at -2 {{Property is declared here}}
-#endif
@property (assign) id friend;
@end
@implementation Person
@synthesize name = _name;
-#if !__has_feature(objc_arc)
-// expected-note at -2 {{Property is synthesized here}}
-#endif
-(void)dealloc {
#if !__has_feature(objc_arc)
More information about the cfe-commits
mailing list