Ha, whoops. I didn't even notice that. I'll fix the layering one way or another later today or tomorrow morning. Thanks, Eric!
On Oct 3, 2013, at 11:24 , Eric Christopher <[email protected]> wrote: > So this patch makes the core static analyzer depend upon headers in > the checkers. I don't know if that's something we want to do? > > -eric > > On Thu, Oct 3, 2013 at 9:57 AM, Jordan Rose <[email protected]> wrote: >> 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"; >> >> >> _______________________________________________ >> cfe-commits mailing list >> [email protected] >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
