]> granicus.if.org Git - clang/commitdiff
Make the implementation of DivZeroChecker private.
authorTed Kremenek <kremenek@apple.com>
Fri, 6 Nov 2009 20:47:51 +0000 (20:47 +0000)
committerTed Kremenek <kremenek@apple.com>
Fri, 6 Nov 2009 20:47:51 +0000 (20:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86288 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Analysis/PathSensitive/Checkers/DivZeroChecker.h [deleted file]
lib/Analysis/DivZeroChecker.cpp
lib/Analysis/GRExprEngineInternalChecks.cpp
lib/Analysis/GRExprEngineInternalChecks.h

diff --git a/include/clang/Analysis/PathSensitive/Checkers/DivZeroChecker.h b/include/clang/Analysis/PathSensitive/Checkers/DivZeroChecker.h
deleted file mode 100644 (file)
index 317e43a..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//== DivZeroChecker.h - Division by zero checker ----------------*- C++ -*--==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This defines DivZeroChecker, a builtin check in GRExprEngine that performs
-// checks for division by zeros.
-//
-//===----------------------------------------------------------------------===//
-
-#include "clang/Analysis/PathSensitive/CheckerVisitor.h"
-
-namespace clang {
-
-class DivZeroChecker : public CheckerVisitor<DivZeroChecker> {
-  BuiltinBug *BT;
-public:
-  DivZeroChecker() : BT(0) {}
-
-  static void *getTag();
-  void PreVisitBinaryOperator(CheckerContext &C, const BinaryOperator *B);
-};
-
-}
index c90c0ab4931f70623519abce8c42e68641814ff9..5f949fdc3924ac0daf8ae0b9722d2632824964e8 100644 (file)
 //
 //===----------------------------------------------------------------------===//
 
-#include "clang/Analysis/PathSensitive/Checkers/DivZeroChecker.h"
+#include "clang/Analysis/PathSensitive/CheckerVisitor.h"
+#include "GRExprEngineInternalChecks.h"
 
 using namespace clang;
 
+namespace {
+class VISIBILITY_HIDDEN DivZeroChecker : public CheckerVisitor<DivZeroChecker> {
+  BuiltinBug *BT;
+public:
+  DivZeroChecker() : BT(0) {}  
+  static void *getTag();
+  void PreVisitBinaryOperator(CheckerContext &C, const BinaryOperator *B);
+};  
+} // end anonymous namespace
+
+void clang::RegisterDivZeroChecker(GRExprEngine &Eng) {
+  Eng.registerCheck(new DivZeroChecker());
+}
+
 void *DivZeroChecker::getTag() {
   static int x;
   return &x;
index b18e58dea2e57bbace41c12b7a5ce7c2b17d9a3e..3daf3c8ef59cad4e1a2299c3f2d581ac47d5f53d 100644 (file)
@@ -17,7 +17,6 @@
 #include "clang/Analysis/PathSensitive/GRExprEngine.h"
 #include "clang/Analysis/PathSensitive/CheckerVisitor.h"
 #include "clang/Analysis/PathSensitive/Checkers/DereferenceChecker.h"
-#include "clang/Analysis/PathSensitive/Checkers/DivZeroChecker.h"
 #include "clang/Analysis/PathSensitive/Checkers/BadCallChecker.h"
 #include "clang/Analysis/PathSensitive/Checkers/UndefinedArgChecker.h"
 #include "clang/Analysis/PathSensitive/Checkers/UndefinedAssignmentChecker.h"
@@ -398,19 +397,22 @@ void GRExprEngine::RegisterInternalChecks() {
   BR.Register(new NilReceiverStructRet(this));
   BR.Register(new NilReceiverLargerThanVoidPtrRet(this));
 
+  RegisterDivZeroChecker(*this);
+  RegisterReturnStackAddressChecker(*this);
+  RegisterReturnUndefChecker(*this);
+  
+  // Note that this must be registered after ReturnStackAddressChecker.
+  RegisterReturnPointerRangeChecker(*this);
+
   // The following checks do not need to have their associated BugTypes
   // explicitly registered with the BugReporter.  If they issue any BugReports,
   // their associated BugType will get registered with the BugReporter
   // automatically.  Note that the check itself is owned by the GRExprEngine
-  // object.
-  RegisterReturnStackAddressChecker(*this);
-  RegisterReturnUndefChecker(*this);
-  RegisterReturnPointerRangeChecker(*this);
+  // object.  
   registerCheck(new AttrNonNullChecker());
   registerCheck(new UndefinedArgChecker());
   registerCheck(new UndefinedAssignmentChecker());
   registerCheck(new BadCallChecker());
-  registerCheck(new DivZeroChecker());
   registerCheck(new UndefDerefChecker());
   registerCheck(new NullDerefChecker());
   registerCheck(new UndefSizedVLAChecker());
index b4a00d2e1317ae34f70f77059eb9ec90a147545d..ae239ca23c9f1d1b7a1b87edbfeec6796bb22cf6 100644 (file)
@@ -19,9 +19,10 @@ namespace clang {
 
 class GRExprEngine;
 
-void RegisterReturnStackAddressChecker(GRExprEngine &Eng);
-void RegisterReturnUndefChecker(GRExprEngine &Eng);
+void RegisterDivZeroChecker(GRExprEngine &Eng);
 void RegisterReturnPointerRangeChecker(GRExprEngine &Eng);
+void RegisterReturnStackAddressChecker(GRExprEngine &Eng);  
+void RegisterReturnUndefChecker(GRExprEngine &Eng);
   
 } // end clang namespace
 #endif