diff options
-rw-r--r-- | include/clang/AST/Expr.h | 5 | ||||
-rw-r--r-- | lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/include/clang/AST/Expr.h b/include/clang/AST/Expr.h index ac4ffe0b43..5162941f9b 100644 --- a/include/clang/AST/Expr.h +++ b/include/clang/AST/Expr.h @@ -421,8 +421,9 @@ public: llvm::APSInt X; return isIntegerConstantExpr(X, Ctx, Loc); } - /// isConstantInitializer - Returns true if this expression is a constant - /// initializer, which can be emitted at compile-time. + + /// isConstantInitializer - Returns true if this expression can be emitted to + /// IR as a constant, and thus can be used as a constant initializer in C. bool isConstantInitializer(ASTContext &Ctx, bool ForRef) const; /// EvalStatus is a struct with detailed info about an evaluation in progress. diff --git a/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp b/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp index 79c889d78a..448c750039 100644 --- a/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp @@ -274,7 +274,7 @@ public: // If x is EVER assigned a new value later, don't issue // a warning. This is because such initialization can be // due to defensive programming. - if (E->isConstantInitializer(Ctx, false)) + if (E->isEvaluatable(Ctx)) return; if (DeclRefExpr *DRE=dyn_cast<DeclRefExpr>(E->IgnoreParenCasts())) |