diff options
Diffstat (limited to 'include/clang/Analysis/Analyses/UninitializedValues.h')
-rw-r--r-- | include/clang/Analysis/Analyses/UninitializedValues.h | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/include/clang/Analysis/Analyses/UninitializedValues.h b/include/clang/Analysis/Analyses/UninitializedValues.h index 53ff20c23560..79d89e0633fd 100644 --- a/include/clang/Analysis/Analyses/UninitializedValues.h +++ b/include/clang/Analysis/Analyses/UninitializedValues.h @@ -1,4 +1,4 @@ -//= UninitializedValues.h - Finding uses of uninitialized values -*- C++ -*-==// +//=- UninitializedValues.h - Finding uses of uninitialized values -*- C++ -*-=// // // The LLVM Compiler Infrastructure // @@ -15,7 +15,7 @@ #ifndef LLVM_CLANG_ANALYSIS_ANALYSES_UNINITIALIZEDVALUES_H #define LLVM_CLANG_ANALYSIS_ANALYSES_UNINITIALIZEDVALUES_H -#include "clang/AST/Stmt.h" +#include "clang/Basic/LLVM.h" #include "llvm/ADT/SmallVector.h" namespace clang { @@ -24,6 +24,7 @@ class AnalysisDeclContext; class CFG; class DeclContext; class Expr; +class Stmt; class VarDecl; /// A use of a variable, which might be uninitialized. @@ -39,10 +40,10 @@ private: const Expr *User; /// Is this use uninitialized whenever the function is called? - bool UninitAfterCall; + bool UninitAfterCall = false; /// Is this use uninitialized whenever the variable declaration is reached? - bool UninitAfterDecl; + bool UninitAfterDecl = false; /// Does this use always see an uninitialized value? bool AlwaysUninit; @@ -53,8 +54,7 @@ private: public: UninitUse(const Expr *User, bool AlwaysUninit) - : User(User), UninitAfterCall(false), UninitAfterDecl(false), - AlwaysUninit(AlwaysUninit) {} + : User(User), AlwaysUninit(AlwaysUninit) {} void addUninitBranch(Branch B) { UninitBranches.push_back(B); @@ -70,14 +70,18 @@ public: enum Kind { /// The use might be uninitialized. Maybe, + /// The use is uninitialized whenever a certain branch is taken. Sometimes, + /// The use is uninitialized the first time it is reached after we reach /// the variable's declaration. AfterDecl, + /// The use is uninitialized the first time it is reached after the function /// is called. AfterCall, + /// The use is always uninitialized. Always }; @@ -90,7 +94,8 @@ public: !branch_empty() ? Sometimes : Maybe; } - typedef SmallVectorImpl<Branch>::const_iterator branch_iterator; + using branch_iterator = SmallVectorImpl<Branch>::const_iterator; + /// Branches which inevitably result in the variable being used uninitialized. branch_iterator branch_begin() const { return UninitBranches.begin(); } branch_iterator branch_end() const { return UninitBranches.end(); } @@ -99,7 +104,7 @@ public: class UninitVariablesHandler { public: - UninitVariablesHandler() {} + UninitVariablesHandler() = default; virtual ~UninitVariablesHandler(); /// Called when the uninitialized variable is used at the given expression. @@ -122,5 +127,6 @@ void runUninitializedVariablesAnalysis(const DeclContext &dc, const CFG &cfg, UninitVariablesHandler &handler, UninitVariablesAnalysisStats &stats); -} -#endif +} // namespace clang + +#endif // LLVM_CLANG_ANALYSIS_ANALYSES_UNINITIALIZEDVALUES_H |