A few tweaks to MaterializeTemporaryExpr suggested by John.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133528 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp
index cdec049..7ca936a 100644
--- a/lib/AST/Decl.cpp
+++ b/lib/AST/Decl.cpp
@@ -1313,8 +1313,7 @@
}
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/lib/AST/Expr.cpp b/lib/AST/Expr.cpp
index 1faceb9..2adaba1 100644
--- a/lib/AST/Expr.cpp
+++ b/lib/AST/Expr.cpp
@@ -1573,10 +1573,6 @@
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/lib/AST/ExprClassification.cpp b/lib/AST/ExprClassification.cpp
index 2d824ce..2a05c1f 100644
--- a/lib/AST/ExprClassification.cpp
+++ b/lib/AST/ExprClassification.cpp
@@ -343,7 +343,7 @@
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;
}