summaryrefslogtreecommitdiffstats
path: root/clang/Driver/ASTStreamers.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2007-09-17 20:49:30 +0000
committerTed Kremenek <kremenek@apple.com>2007-09-17 20:49:30 +0000
commit7e61e81bbfeed1f76c617de51a3b5cc8facd6b5f (patch)
tree0be6d39c68b73d2b22846fafb6ee6c60db6cc5ba /clang/Driver/ASTStreamers.cpp
parent712dbe9d139af9655009269bf802a39009cb9bc6 (diff)
downloadbcm5719-llvm-7e61e81bbfeed1f76c617de51a3b5cc8facd6b5f.tar.gz
bcm5719-llvm-7e61e81bbfeed1f76c617de51a3b5cc8facd6b5f.zip
UninitialuzedValues now only tracks BlockVarDecls; obviating false positives with
globals and function parameters. llvm-svn: 42055
Diffstat (limited to 'clang/Driver/ASTStreamers.cpp')
-rw-r--r--clang/Driver/ASTStreamers.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/clang/Driver/ASTStreamers.cpp b/clang/Driver/ASTStreamers.cpp
index 124b9e2e51e..cce19e795aa 100644
--- a/clang/Driver/ASTStreamers.cpp
+++ b/clang/Driver/ASTStreamers.cpp
@@ -210,7 +210,7 @@ ASTConsumer *clang::CreateLiveVarAnalyzer() {
}
//===----------------------------------------------------------------------===//
-// RunDeadStores - run checker to locate dead stores in a function
+// DeadStores - run checker to locate dead stores in a function
namespace {
class DeadStoreVisitor : public CFGVisitor {
@@ -232,6 +232,29 @@ ASTConsumer *clang::CreateDeadStoreChecker(Diagnostic &Diags) {
}
//===----------------------------------------------------------------------===//
+// Unitialized Values - run checker to flag potential uses of uninitalized
+// variables.
+
+namespace {
+ class UninitValsVisitor : public CFGVisitor {
+ Diagnostic &Diags;
+ ASTContext *Ctx;
+ public:
+ UninitValsVisitor(Diagnostic &diags) : Diags(diags) {}
+ virtual void Initialize(ASTContext &Context, unsigned MainFileID) {
+ Ctx = &Context;
+ }
+
+ virtual void VisitCFG(CFG& C) { CheckUninitializedValues(C, *Ctx, Diags); }
+ virtual bool printFuncDeclStart() { return false; }
+ };
+} // end anonymous namespace
+
+ASTConsumer *clang::CreateUnitValsChecker(Diagnostic &Diags) {
+ return new UninitValsVisitor(Diags);
+}
+
+//===----------------------------------------------------------------------===//
// LLVM Emitter
#include "clang/Basic/Diagnostic.h"
OpenPOWER on IntegriCloud