Small fixes to CXXTemporary and CXXBindTemporaryExpr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72628 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/AST/ExprCXX.h b/include/clang/AST/ExprCXX.h
index ed713c8..0548a72 100644
--- a/include/clang/AST/ExprCXX.h
+++ b/include/clang/AST/ExprCXX.h
@@ -415,13 +415,14 @@
/// CXXTemporary - Represents a C++ temporary.
class CXXTemporary {
/// Destructor - The destructor that needs to be called.
- CXXDestructorDecl *Destructor;
+ const CXXDestructorDecl *Destructor;
- CXXTemporary(CXXDestructorDecl *destructor)
+ CXXTemporary(const CXXDestructorDecl *destructor)
: Destructor(destructor) { }
public:
- static CXXTemporary *Create(ASTContext &C, CXXDestructorDecl *Destructor);
+ static CXXTemporary *Create(ASTContext &C,
+ const CXXDestructorDecl *Destructor);
};
/// CXXBindTemporaryExpr - Represents binding an expression to a temporary,
diff --git a/lib/AST/ExprCXX.cpp b/lib/AST/ExprCXX.cpp
index d0032fb..f757ac0 100644
--- a/lib/AST/ExprCXX.cpp
+++ b/lib/AST/ExprCXX.cpp
@@ -237,7 +237,7 @@
}
CXXTemporary *CXXTemporary::Create(ASTContext &C,
- CXXDestructorDecl *Destructor) {
+ const CXXDestructorDecl *Destructor) {
// FIXME: Allocate using the ASTContext.
return new CXXTemporary(Destructor);
}
@@ -248,7 +248,7 @@
assert(SubExpr->getType()->isRecordType() &&
"Expression bound to a temporary must have record type!");
- return new CXXBindTemporaryExpr(Temp, SubExpr);
+ return new (C) CXXBindTemporaryExpr(Temp, SubExpr);
}
CXXTemporaryObjectExpr::CXXTemporaryObjectExpr(ASTContext &C, VarDecl *vd,