]> granicus.if.org Git - clang/commitdiff
[analyzer] Improve the diagnostic for the self-init checker. Suggestion by Ted!
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Wed, 26 Jan 2011 01:26:41 +0000 (01:26 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Wed, 26 Jan 2011 01:26:41 +0000 (01:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124263 91177308-0d34-0410-b5e6-96231b3b80d8

lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
test/Analysis/self-init.m

index b62d2309fce75f4220954d7f7830ce10aec60d77..2eceb9caa32857bb6776a44983f191a04ef575ec 100644 (file)
@@ -102,8 +102,8 @@ namespace {
 class InitSelfBug : public BugType {
   const std::string desc;
 public:
-  InitSelfBug() : BugType("missing \"self = [{initializer}]\"",
-                          "missing \"self = [{initializer}]\"") {}
+  InitSelfBug() : BugType("missing \"self = [(super or self) init...]\"",
+                          "missing \"self = [(super or self) init...]\"") {}
 };
 
 } // end anonymous namespace
@@ -209,7 +209,8 @@ void ObjCSelfInitChecker::PostVisitObjCIvarRefExpr(CheckerContext &C,
     return;
 
   checkForInvalidSelf(E->getBase(), C,
-         "Using an ivar before setting 'self' to the result of an initializer");
+    "Instance variable used before setting 'self' to the result of "
+                                                 "'[(super or self) init...]'");
 }
 
 void ObjCSelfInitChecker::PreVisitReturnStmt(CheckerContext &C,
@@ -220,7 +221,8 @@ void ObjCSelfInitChecker::PreVisitReturnStmt(CheckerContext &C,
     return;
 
   checkForInvalidSelf(S->getRetValue(), C,
-          "Returning 'self' before setting it to the result of an initializer");
+    "Returning 'self' before setting it to the result of "
+                                                 "'[(super or self) init...]'");
 }
 
 // When a call receives a reference to 'self', [Pre/Post]VisitGenericCall pass
index 9c30d26be0bbd4cd430b2c0a44deec42ada970b7..0be8285c31a6bccf3c3e827185e56847afa61146 100644 (file)
@@ -97,7 +97,7 @@ extern void *somePtr;
 }
 
 -(id)init6 {
-  [NSBundle loadNibNamed:@"Window" owner:myivar]; // expected-warning {{Using an ivar}}
+  [NSBundle loadNibNamed:@"Window" owner:myivar]; // expected-warning {{Instance variable used}}
   return [self initWithSomething:0];
 }
 
@@ -121,7 +121,7 @@ extern void *somePtr;
 }
 
 -(id)init10 {
-       myivar = 0; // expected-warning {{Using an ivar}}
+       myivar = 0; // expected-warning {{Instance variable used}}
     return self;
 }
 
@@ -136,7 +136,7 @@ extern void *somePtr;
 
 -(id)init13 {
        if ((self == [super init])) {
-         myivar = 0; // expected-warning {{Using an ivar}}
+         myivar = 0; // expected-warning {{Instance variable used}}
        }
        return self; // expected-warning {{Returning 'self'}}
 }