diff options
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" |

