/// 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,
}
CXXTemporary *CXXTemporary::Create(ASTContext &C,
- CXXDestructorDecl *Destructor) {
+ const CXXDestructorDecl *Destructor) {
// FIXME: Allocate using the ASTContext.
return new CXXTemporary(Destructor);
}
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,