diff options
| author | Ted Kremenek <kremenek@apple.com> | 2007-09-17 20:49:30 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2007-09-17 20:49:30 +0000 |
| commit | 7e61e81bbfeed1f76c617de51a3b5cc8facd6b5f (patch) | |
| tree | 0be6d39c68b73d2b22846fafb6ee6c60db6cc5ba /clang/Driver/ASTStreamers.cpp | |
| parent | 712dbe9d139af9655009269bf802a39009cb9bc6 (diff) | |
| download | bcm5719-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.cpp | 25 |
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" |

