r191910 - [analyzer] Replace bug category magic strings with shared constants.

Jordan Rose jordan_rose at apple.com
Thu Oct 3 09:57:20 PDT 2013


Author: jrose
Date: Thu Oct  3 11:57:20 2013
New Revision: 191910

URL: http://llvm.org/viewvc/llvm-project?rev=191910&view=rev
Log:
[analyzer] Replace bug category magic strings with shared constants.

One small functionality change is to bring the sizeof-pointer checker in
line with the other checkers by making its category be "Logic error"
instead of just "Logic". There should be no other functionality changes.

Patch by Daniel Marjamäki!

Modified:
    cfe/trunk/include/clang/StaticAnalyzer/Checkers/CommonBugCategories.h
    cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h
    cfe/trunk/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
    cfe/trunk/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp
    cfe/trunk/lib/StaticAnalyzer/Checkers/CommonBugCategories.cpp

Modified: cfe/trunk/include/clang/StaticAnalyzer/Checkers/CommonBugCategories.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Checkers/CommonBugCategories.h?rev=191910&r1=191909&r2=191910&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Checkers/CommonBugCategories.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Checkers/CommonBugCategories.h Thu Oct  3 11:57:20 2013
@@ -15,6 +15,7 @@ namespace clang {
   namespace ento {
     namespace categories {
       extern const char *CoreFoundationObjectiveC;
+      extern const char *LogicError;
       extern const char *MemoryCoreFoundationObjectiveC;
       extern const char *UnixAPI;
     }

Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h?rev=191910&r1=191909&r2=191910&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h Thu Oct  3 11:57:20 2013
@@ -15,6 +15,7 @@
 #define LLVM_CLANG_ANALYSIS_BUGTYPE
 
 #include "clang/Basic/LLVM.h"
+#include "clang/StaticAnalyzer/Checkers/CommonBugCategories.h"
 #include "llvm/ADT/FoldingSet.h"
 #include <string>
 
@@ -54,10 +55,10 @@ class BuiltinBug : public BugType {
   const std::string desc;
 public:
   BuiltinBug(const char *name, const char *description)
-    : BugType(name, "Logic error"), desc(description) {}
+    : BugType(name, categories::LogicError), desc(description) {}
   
   BuiltinBug(const char *name)
-    : BugType(name, "Logic error"), desc(name) {}
+    : BugType(name, categories::LogicError), desc(name) {}
   
   StringRef getDescription() const { return desc; }
 };

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/CStringChecker.cpp?rev=191910&r1=191909&r2=191910&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/CStringChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/CStringChecker.cpp Thu Oct  3 11:57:20 2013
@@ -231,7 +231,7 @@ ProgramStateRef CStringChecker::checkNon
       return NULL;
 
     if (!BT_Null)
-      BT_Null.reset(new BuiltinBug("Unix API",
+      BT_Null.reset(new BuiltinBug(categories::UnixAPI,
         "Null pointer argument in call to byte string function"));
 
     SmallString<80> buf;
@@ -525,7 +525,7 @@ void CStringChecker::emitOverlapBug(Chec
     return;
 
   if (!BT_Overlap)
-    BT_Overlap.reset(new BugType("Unix API", "Improper arguments"));
+    BT_Overlap.reset(new BugType(categories::UnixAPI, "Improper arguments"));
 
   // Generate a report for this bug.
   BugReport *report = 
@@ -702,7 +702,7 @@ SVal CStringChecker::getCStringLength(Ch
 
       if (ExplodedNode *N = C.addTransition(state)) {
         if (!BT_NotCString)
-          BT_NotCString.reset(new BuiltinBug("Unix API",
+          BT_NotCString.reset(new BuiltinBug(categories::UnixAPI,
             "Argument is not a null-terminated string."));
 
         SmallString<120> buf;
@@ -762,7 +762,7 @@ SVal CStringChecker::getCStringLength(Ch
 
     if (ExplodedNode *N = C.addTransition(state)) {
       if (!BT_NotCString)
-        BT_NotCString.reset(new BuiltinBug("Unix API",
+        BT_NotCString.reset(new BuiltinBug(categories::UnixAPI,
           "Argument is not a null-terminated string."));
 
       SmallString<120> buf;

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp?rev=191910&r1=191909&r2=191910&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp Thu Oct  3 11:57:20 2013
@@ -65,7 +65,7 @@ void WalkAST::VisitUnaryExprOrTypeTraitE
       PathDiagnosticLocation::createBegin(E, BR.getSourceManager(), AC);
     BR.EmitBasicReport(AC->getDecl(),
                        "Potential unintended use of sizeof() on pointer type",
-                       "Logic",
+                       categories::LogicError,
                        "The code calls sizeof() on a pointer type. "
                        "This can produce an unexpected result.",
                        ELoc, &R, 1);

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/CommonBugCategories.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/CommonBugCategories.cpp?rev=191910&r1=191909&r2=191910&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/CommonBugCategories.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/CommonBugCategories.cpp Thu Oct  3 11:57:20 2013
@@ -11,6 +11,7 @@
 namespace clang { namespace ento { namespace categories {
 
 const char *CoreFoundationObjectiveC = "Core Foundation/Objective-C";
+const char *LogicError = "Logic error";
 const char *MemoryCoreFoundationObjectiveC =
   "Memory (Core Foundation/Objective-C)";
 const char *UnixAPI = "Unix API";





More information about the cfe-commits mailing list