[cfe-commits] r86809 - in /cfe/trunk: include/clang/Analysis/PathSensitive/Checkers/AttrNonNullChecker.h include/clang/Analysis/PathSensitive/Checkers/BadCallChecker.h include/clang/Analysis/PathSensitive/Checkers/UndefinedArgChecker.h lib/Analysis/AttrNonNullChecker.cpp lib/Analysis/BadCallChecker.cpp lib/Analysis/GRExprEngineInternalChecks.cpp lib/Analysis/GRExprEngineInternalChecks.h lib/Analysis/UndefinedArgChecker.cpp

Ted Kremenek kremenek at apple.com
Tue Nov 10 21:50:44 PST 2009


Author: kremenek
Date: Tue Nov 10 23:50:44 2009
New Revision: 86809

URL: http://llvm.org/viewvc/llvm-project?rev=86809&view=rev
Log:
Remove public headers for UndefinedArgChecker, AttrNonNullChecker, and BadCallChecker, making their implementations completely private.

Removed:
    cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/AttrNonNullChecker.h
    cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/BadCallChecker.h
    cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/UndefinedArgChecker.h
Modified:
    cfe/trunk/lib/Analysis/AttrNonNullChecker.cpp
    cfe/trunk/lib/Analysis/BadCallChecker.cpp
    cfe/trunk/lib/Analysis/GRExprEngineInternalChecks.cpp
    cfe/trunk/lib/Analysis/GRExprEngineInternalChecks.h
    cfe/trunk/lib/Analysis/UndefinedArgChecker.cpp

Removed: cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/AttrNonNullChecker.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/AttrNonNullChecker.h?rev=86808&view=auto

==============================================================================
--- cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/AttrNonNullChecker.h (original)
+++ cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/AttrNonNullChecker.h (removed)
@@ -1,28 +0,0 @@
-//===--- AttrNonNullChecker.h - Undefined arguments 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 AttrNonNullChecker, a builtin check in GRExprEngine that 
-// performs checks for arguments declared to have nonnull attribute.
-//
-//===----------------------------------------------------------------------===//
-
-#include "clang/Analysis/PathSensitive/CheckerVisitor.h"
-
-namespace clang {
-
-class AttrNonNullChecker : public CheckerVisitor<AttrNonNullChecker> {
-  BugType *BT;
-
-public:
-  AttrNonNullChecker() : BT(0) {}
-  static void *getTag(); 
-  void PreVisitCallExpr(CheckerContext &C, const CallExpr *CE);
-};
-
-}

Removed: cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/BadCallChecker.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/BadCallChecker.h?rev=86808&view=auto

==============================================================================
--- cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/BadCallChecker.h (original)
+++ cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/BadCallChecker.h (removed)
@@ -1,30 +0,0 @@
-//===--- BadCallChecker.h - Bad call 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 BadCallChecker, a builtin check in GRExprEngine that performs
-// checks for bad callee at call sites.
-//
-//===----------------------------------------------------------------------===//
-
-#include "clang/Analysis/PathSensitive/CheckerVisitor.h"
-
-namespace clang {
-
-class BadCallChecker : public CheckerVisitor<BadCallChecker> {
-  BuiltinBug *BT;
-
-public:
-  BadCallChecker() : BT(0) {}
-
-  static void *getTag();
-
-  void PreVisitCallExpr(CheckerContext &C, const CallExpr *CE);
-};
-
-}

Removed: cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/UndefinedArgChecker.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/UndefinedArgChecker.h?rev=86808&view=auto

==============================================================================
--- cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/UndefinedArgChecker.h (original)
+++ cfe/trunk/include/clang/Analysis/PathSensitive/Checkers/UndefinedArgChecker.h (removed)
@@ -1,34 +0,0 @@
-//===--- UndefinedArgChecker.h - Undefined arguments 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 BadCallChecker, a builtin check in GRExprEngine that performs
-// checks for undefined arguments.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_UNDEFARGCHECKER
-#define LLVM_CLANG_UNDEFARGCHECKER
-
-#include "clang/Analysis/PathSensitive/CheckerVisitor.h"
-
-namespace clang {
-
-class UndefinedArgChecker : public CheckerVisitor<UndefinedArgChecker> {
-  BugType *BT;
-
-public:
-  UndefinedArgChecker() : BT(0) {}
-
-  static void *getTag();
-
-  void PreVisitCallExpr(CheckerContext &C, const CallExpr *CE);
-};
-
-}
-#endif

Modified: cfe/trunk/lib/Analysis/AttrNonNullChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/AttrNonNullChecker.cpp?rev=86809&r1=86808&r2=86809&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/AttrNonNullChecker.cpp (original)
+++ cfe/trunk/lib/Analysis/AttrNonNullChecker.cpp Tue Nov 10 23:50:44 2009
@@ -12,14 +12,28 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "clang/Analysis/PathSensitive/Checkers/AttrNonNullChecker.h"
+#include "clang/Analysis/PathSensitive/CheckerVisitor.h"
 #include "clang/Analysis/PathSensitive/BugReporter.h"
+#include "GRExprEngineInternalChecks.h"
 
 using namespace clang;
 
-void *AttrNonNullChecker::getTag() {
-  static int x = 0;
-  return &x;
+namespace {
+class VISIBILITY_HIDDEN AttrNonNullChecker
+  : public CheckerVisitor<AttrNonNullChecker> {
+  BugType *BT;
+public:
+  AttrNonNullChecker() : BT(0) {}
+  static void *getTag() {
+    static int x = 0;
+    return &x;
+  }
+  void PreVisitCallExpr(CheckerContext &C, const CallExpr *CE);
+};
+} // end anonymous namespace
+
+void clang::RegisterAttrNonNullChecker(GRExprEngine &Eng) {
+  Eng.registerCheck(new AttrNonNullChecker());
 }
 
 void AttrNonNullChecker::PreVisitCallExpr(CheckerContext &C, 

Modified: cfe/trunk/lib/Analysis/BadCallChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/BadCallChecker.cpp?rev=86809&r1=86808&r2=86809&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/BadCallChecker.cpp (original)
+++ cfe/trunk/lib/Analysis/BadCallChecker.cpp Tue Nov 10 23:50:44 2009
@@ -12,14 +12,27 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "clang/Analysis/PathSensitive/Checkers/BadCallChecker.h"
+#include "clang/Analysis/PathSensitive/CheckerVisitor.h"
 #include "clang/Analysis/PathSensitive/BugReporter.h"
+#include "GRExprEngineInternalChecks.h"
 
 using namespace clang;
 
-void *BadCallChecker::getTag() {
-  static int x = 0;
-  return &x;
+namespace {
+class VISIBILITY_HIDDEN BadCallChecker : public CheckerVisitor<BadCallChecker> {
+  BuiltinBug *BT;
+public:
+  BadCallChecker() : BT(0) {}
+  static void *getTag() {
+    static int x = 0;
+    return &x;
+  }
+  void PreVisitCallExpr(CheckerContext &C, const CallExpr *CE);
+};
+} // end anonymous namespace
+
+void clang::RegisterBadCallChecker(GRExprEngine &Eng) {
+  Eng.registerCheck(new BadCallChecker());
 }
 
 void BadCallChecker::PreVisitCallExpr(CheckerContext &C, const CallExpr *CE) {
@@ -29,7 +42,7 @@
   if (L.isUndef() || isa<loc::ConcreteInt>(L)) {
     if (ExplodedNode *N = C.GenerateNode(CE, true)) {
       if (!BT)
-        BT = new BuiltinBug(0, "Invalid function call",
+        BT = new BuiltinBug("Invalid function call",
                 "Called function pointer is a null or undefined pointer value");
 
       EnhancedBugReport *R =

Modified: cfe/trunk/lib/Analysis/GRExprEngineInternalChecks.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/GRExprEngineInternalChecks.cpp?rev=86809&r1=86808&r2=86809&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/GRExprEngineInternalChecks.cpp (original)
+++ cfe/trunk/lib/Analysis/GRExprEngineInternalChecks.cpp Tue Nov 10 23:50:44 2009
@@ -16,10 +16,7 @@
 #include "clang/Analysis/PathSensitive/BugReporter.h"
 #include "clang/Analysis/PathSensitive/GRExprEngine.h"
 #include "clang/Analysis/PathSensitive/CheckerVisitor.h"
-#include "clang/Analysis/PathSensitive/Checkers/BadCallChecker.h"
-#include "clang/Analysis/PathSensitive/Checkers/UndefinedArgChecker.h"
 #include "clang/Analysis/PathSensitive/Checkers/UndefinedAssignmentChecker.h"
-#include "clang/Analysis/PathSensitive/Checkers/AttrNonNullChecker.h"
 #include "clang/Analysis/PathDiagnostic.h"
 #include "clang/Basic/SourceManager.h"
 #include "llvm/Support/Compiler.h"
@@ -400,11 +397,11 @@
   // their associated BugType will get registered with the BugReporter
   // automatically.  Note that the check itself is owned by the GRExprEngine
   // object.  
-  registerCheck(new AttrNonNullChecker());
-  registerCheck(new UndefinedArgChecker());
   registerCheck(new UndefinedAssignmentChecker());
-  registerCheck(new BadCallChecker());
   
+  RegisterAttrNonNullChecker(*this);
+  RegisterUndefinedArgChecker(*this);
+  RegisterBadCallChecker(*this);
   RegisterDereferenceChecker(*this);
   RegisterVLASizeChecker(*this);
   RegisterDivZeroChecker(*this);

Modified: cfe/trunk/lib/Analysis/GRExprEngineInternalChecks.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/GRExprEngineInternalChecks.h?rev=86809&r1=86808&r2=86809&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/GRExprEngineInternalChecks.h (original)
+++ cfe/trunk/lib/Analysis/GRExprEngineInternalChecks.h Tue Nov 10 23:50:44 2009
@@ -19,6 +19,8 @@
 
 class GRExprEngine;
 
+void RegisterAttrNonNullChecker(GRExprEngine &Eng);
+void RegisterBadCallChecker(GRExprEngine &Eng);
 void RegisterDereferenceChecker(GRExprEngine &Eng);
 void RegisterDivZeroChecker(GRExprEngine &Eng);
 void RegisterReturnPointerRangeChecker(GRExprEngine &Eng);
@@ -29,6 +31,7 @@
 void RegisterPointerArithChecker(GRExprEngine &Eng);
 void RegisterFixedAddressChecker(GRExprEngine &Eng);
 void RegisterCastToStructChecker(GRExprEngine &Eng);
+void RegisterUndefinedArgChecker(GRExprEngine &Eng);
 
 } // end clang namespace
 #endif

Modified: cfe/trunk/lib/Analysis/UndefinedArgChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/UndefinedArgChecker.cpp?rev=86809&r1=86808&r2=86809&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/UndefinedArgChecker.cpp (original)
+++ cfe/trunk/lib/Analysis/UndefinedArgChecker.cpp Tue Nov 10 23:50:44 2009
@@ -12,14 +12,28 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "clang/Analysis/PathSensitive/Checkers/UndefinedArgChecker.h"
+#include "clang/Analysis/PathSensitive/CheckerVisitor.h"
 #include "clang/Analysis/PathSensitive/BugReporter.h"
+#include "GRExprEngineInternalChecks.h"
 
 using namespace clang;
 
-void *UndefinedArgChecker::getTag() {
-  static int x = 0;
-  return &x;
+namespace {
+class VISIBILITY_HIDDEN UndefinedArgChecker
+  : public CheckerVisitor<UndefinedArgChecker> {
+  BugType *BT;
+public:
+  UndefinedArgChecker() : BT(0) {}
+  static void *getTag() {
+    static int x = 0;
+    return &x;
+  }
+  void PreVisitCallExpr(CheckerContext &C, const CallExpr *CE);
+};
+} // end anonymous namespace
+
+void clang::RegisterUndefinedArgChecker(GRExprEngine &Eng) {
+  Eng.registerCheck(new UndefinedArgChecker());
 }
 
 void UndefinedArgChecker::PreVisitCallExpr(CheckerContext &C, 





More information about the cfe-commits mailing list