diff options
author | Zhongxing Xu <xuzhongxing@gmail.com> | 2009-11-22 12:29:52 +0000 |
---|---|---|
committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2009-11-22 12:29:52 +0000 |
commit | f0b7fc889075dfd57f1903d5ab2916055bf036fc (patch) | |
tree | 4f5297d469d6d4f22cc3f892ed600b42f3f93eb1 | |
parent | 15dd46215e2f43b9a768b5c0dadfd1571a7464b4 (diff) | |
download | bcm5719-llvm-f0b7fc889075dfd57f1903d5ab2916055bf036fc.tar.gz bcm5719-llvm-f0b7fc889075dfd57f1903d5ab2916055bf036fc.zip |
Remove UndefinedAssignmentChecker's header.
llvm-svn: 89585
4 files changed, 21 insertions, 36 deletions
diff --git a/clang/include/clang/Analysis/PathSensitive/Checkers/UndefinedAssignmentChecker.h b/clang/include/clang/Analysis/PathSensitive/Checkers/UndefinedAssignmentChecker.h deleted file mode 100644 index 13437eb2ac0..00000000000 --- a/clang/include/clang/Analysis/PathSensitive/Checkers/UndefinedAssignmentChecker.h +++ /dev/null @@ -1,33 +0,0 @@ -//===--- UndefinedAssignmentChecker.h ---------------------------*- C++ -*--==// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This defines UndefinedAssginmentChecker, a builtin check in GRExprEngine that -// checks for assigning undefined values. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_CLANG_UNDEFASSIGNMENTCHECKER -#define LLVM_CLANG_UNDEFASSIGNMENTCHECKER - -#include "clang/Analysis/PathSensitive/CheckerVisitor.h" - -namespace clang { -class UndefinedAssignmentChecker - : public CheckerVisitor<UndefinedAssignmentChecker> { - BugType *BT; -public: - UndefinedAssignmentChecker() : BT(0) {} - static void *getTag(); - virtual void PreVisitBind(CheckerContext &C, const Stmt *AssignE, - const Stmt *StoreE, SVal location, - SVal val); -}; -} -#endif - diff --git a/clang/lib/Analysis/GRExprEngineInternalChecks.cpp b/clang/lib/Analysis/GRExprEngineInternalChecks.cpp index ec1da94efdf..5c428f53709 100644 --- a/clang/lib/Analysis/GRExprEngineInternalChecks.cpp +++ b/clang/lib/Analysis/GRExprEngineInternalChecks.cpp @@ -317,8 +317,6 @@ void GRExprEngine::RegisterInternalChecks() { // their associated BugType will get registered with the BugReporter // automatically. Note that the check itself is owned by the GRExprEngine // object. - registerCheck(new UndefinedAssignmentChecker()); - RegisterAttrNonNullChecker(*this); RegisterUndefinedArgChecker(*this); RegisterDereferenceChecker(*this); @@ -327,4 +325,5 @@ void GRExprEngine::RegisterInternalChecks() { RegisterReturnStackAddressChecker(*this); RegisterReturnUndefChecker(*this); RegisterUndefinedArraySubscriptChecker(*this); + RegisterUndefinedAssignmentChecker(*this); } diff --git a/clang/lib/Analysis/GRExprEngineInternalChecks.h b/clang/lib/Analysis/GRExprEngineInternalChecks.h index 5db00132ef2..49c790a4eee 100644 --- a/clang/lib/Analysis/GRExprEngineInternalChecks.h +++ b/clang/lib/Analysis/GRExprEngineInternalChecks.h @@ -33,6 +33,7 @@ void RegisterCastToStructChecker(GRExprEngine &Eng); void RegisterUndefinedArgChecker(GRExprEngine &Eng); void RegisterArrayBoundChecker(GRExprEngine &Eng); void RegisterUndefinedArraySubscriptChecker(GRExprEngine &Eng); +void RegisterUndefinedAssignmentChecker(GRExprEngine &Eng); } // end clang namespace #endif diff --git a/clang/lib/Analysis/UndefinedAssignmentChecker.cpp b/clang/lib/Analysis/UndefinedAssignmentChecker.cpp index b8062f35956..0e911ffab08 100644 --- a/clang/lib/Analysis/UndefinedAssignmentChecker.cpp +++ b/clang/lib/Analysis/UndefinedAssignmentChecker.cpp @@ -12,11 +12,29 @@ // //===----------------------------------------------------------------------===// -#include "clang/Analysis/PathSensitive/Checkers/UndefinedAssignmentChecker.h" +#include "GRExprEngineInternalChecks.h" +#include "clang/Analysis/PathSensitive/CheckerVisitor.h" #include "clang/Analysis/PathSensitive/BugReporter.h" using namespace clang; +namespace { +class VISIBILITY_HIDDEN UndefinedAssignmentChecker + : public CheckerVisitor<UndefinedAssignmentChecker> { + BugType *BT; +public: + UndefinedAssignmentChecker() : BT(0) {} + static void *getTag(); + virtual void PreVisitBind(CheckerContext &C, const Stmt *AssignE, + const Stmt *StoreE, SVal location, + SVal val); +}; +} + +void clang::RegisterUndefinedAssignmentChecker(GRExprEngine &Eng){ + Eng.registerCheck(new UndefinedAssignmentChecker()); +} + void *UndefinedAssignmentChecker::getTag() { static int x = 0; return &x; |