diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-06-21 18:20:46 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-06-21 18:20:46 +0000 |
commit | d410c08ebe2ce441d03f072058cc6e88868fb82c (patch) | |
tree | 8885d293f2735ae784992ab0c91cce889f7409e9 /clang/lib/AST | |
parent | 40502b122921b3d24aef45430e90c2e0c2ebd2c9 (diff) | |
download | bcm5719-llvm-d410c08ebe2ce441d03f072058cc6e88868fb82c.tar.gz bcm5719-llvm-d410c08ebe2ce441d03f072058cc6e88868fb82c.zip |
A few tweaks to MaterializeTemporaryExpr suggested by John.
llvm-svn: 133528
Diffstat (limited to 'clang/lib/AST')
-rw-r--r-- | clang/lib/AST/Decl.cpp | 3 | ||||
-rw-r--r-- | clang/lib/AST/Expr.cpp | 4 | ||||
-rw-r--r-- | clang/lib/AST/ExprClassification.cpp | 2 |
3 files changed, 2 insertions, 7 deletions
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index cdec049cb12..7ca936abc91 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -1313,8 +1313,7 @@ void VarDecl::setInit(Expr *I) { } bool VarDecl::extendsLifetimeOfTemporary() const { - if (!getType()->isReferenceType()) - return false; + assert(getType()->isReferenceType() &&"Non-references never extend lifetime"); const Expr *E = getInit(); if (!E) diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index 1faceb94258..2adaba11a0d 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -1573,10 +1573,6 @@ bool Expr::isUnusedResultAWarning(SourceLocation &Loc, SourceRange &R1, return (cast<ImplicitCastExpr>(this) ->getSubExpr()->isUnusedResultAWarning(Loc, R1, R2, Ctx)); - case MaterializeTemporaryExprClass: - return cast<MaterializeTemporaryExpr>(this)->GetTemporaryExpr() - ->isUnusedResultAWarning(Loc, R1, R2, Ctx); - case CXXDefaultArgExprClass: return (cast<CXXDefaultArgExpr>(this) ->getExpr()->isUnusedResultAWarning(Loc, R1, R2, Ctx)); diff --git a/clang/lib/AST/ExprClassification.cpp b/clang/lib/AST/ExprClassification.cpp index 2d824ce8fd7..2a05c1fccff 100644 --- a/clang/lib/AST/ExprClassification.cpp +++ b/clang/lib/AST/ExprClassification.cpp @@ -343,7 +343,7 @@ static Cl::Kinds ClassifyInternal(ASTContext &Ctx, const Expr *E) { return ClassifyInternal(Ctx, cast<PackExpansionExpr>(E)->getPattern()); case Expr::MaterializeTemporaryExprClass: - return cast<MaterializeTemporaryExpr>(E)->BoundToLvalueReference() + return cast<MaterializeTemporaryExpr>(E)->isBoundToLvalueReference() ? Cl::CL_LValue : Cl::CL_XValue; } |