diff options
author | Sebastian Redl <sebastian.redl@getdesigned.at> | 2010-02-01 20:16:42 +0000 |
---|---|---|
committer | Sebastian Redl <sebastian.redl@getdesigned.at> | 2010-02-01 20:16:42 +0000 |
commit | 5ca7984bb4fe32623d40a7f1cd9691eb21eb3560 (patch) | |
tree | 4d37fae6578972f9b67ea61d617bffc1c0a1c317 /clang/lib/AST/ExprConstant.cpp | |
parent | b18093e4675655be85226f03aeaba2081c09ddf5 (diff) | |
download | bcm5719-llvm-5ca7984bb4fe32623d40a7f1cd9691eb21eb3560.tar.gz bcm5719-llvm-5ca7984bb4fe32623d40a7f1cd9691eb21eb3560.zip |
In C++, an initializer on a variable doesn't necessarily mean it's the definition. With that in mind, rename getDefinition to getAnyInitializer (to distinguish it from getInit) and reimplement it in terms of isThisDeclarationADefinition. Update all code to use this new function.
llvm-svn: 94999
Diffstat (limited to 'clang/lib/AST/ExprConstant.cpp')
-rw-r--r-- | clang/lib/AST/ExprConstant.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp index d64e6f1297d..a0b2aa993fa 100644 --- a/clang/lib/AST/ExprConstant.cpp +++ b/clang/lib/AST/ExprConstant.cpp @@ -263,8 +263,7 @@ APValue LValueExprEvaluator::VisitDeclRefExpr(DeclRefExpr *E) { if (!VD->getType()->isReferenceType()) return APValue(E); // FIXME: Check whether VD might be overridden! - const VarDecl *Def = 0; - if (const Expr *Init = VD->getDefinition(Def)) + if (const Expr *Init = VD->getAnyInitializer()) return Visit(const_cast<Expr *>(Init)); } @@ -880,8 +879,7 @@ bool IntExprEvaluator::CheckReferencedDecl(const Expr* E, const Decl* D) { if (Info.Ctx.getCanonicalType(E->getType()).getCVRQualifiers() == Qualifiers::Const) { if (const VarDecl *VD = dyn_cast<VarDecl>(D)) { - const VarDecl *Def = 0; - if (const Expr *Init = VD->getDefinition(Def)) { + if (const Expr *Init = VD->getAnyInitializer()) { if (APValue *V = VD->getEvaluatedValue()) { if (V->isInt()) return Success(V->getInt(), E); |