STMT(UnaryTypeTraitExpr , Expr)
STMT(QualifiedDeclRefExpr , DeclRefExpr)
STMT(UnresolvedDeclRefExpr , Expr)
-STMT(CXXDestroyExpr , Expr)
STMT(CXXConstructExpr , Expr)
STMT(CXXExprWithTemporaries , Expr)
STMT(CXXTemporaryObjectExpr , CXXConstructExpr)
C.Deallocate(this);
}
-CXXDestroyExpr *CXXDestroyExpr::Create(ASTContext &C, VarDecl *vd) {
- assert((vd->getKind() == Decl::CXXTempVar || vd->getKind() == Decl::Var) &&
- "Can only create a destroy expr with a temp var decl or a var decl!");
-
- return new (C) CXXDestroyExpr(vd, C.VoidTy);
-}
-
CXXExprWithTemporaries::CXXExprWithTemporaries(Expr *subexpr,
CXXTempVarDecl **decls,
unsigned numdecls)
return &Args[0]+NumArgs;
}
-// CXXDestroyExpr
-Stmt::child_iterator CXXDestroyExpr::child_begin() {
- return child_iterator();
-}
-Stmt::child_iterator CXXDestroyExpr::child_end() {
- return child_iterator();
+// CXXExprWithTemporaries
+Stmt::child_iterator CXXExprWithTemporaries::child_begin() {
+ return &SubExpr;
}
-// CXXExprWithTemporaries
-Stmt::child_iterator CXXExprWithTemporaries::child_begin() { return &SubExpr; }
-Stmt::child_iterator CXXExprWithTemporaries::child_end() { return &SubExpr + 1;}
+Stmt::child_iterator CXXExprWithTemporaries::child_end() {
+ return &SubExpr + 1;
+}
// Nothing to print.
}
-void StmtPrinter::VisitCXXDestroyExpr(CXXDestroyExpr *E) {
- // Nothing to print.
-}
-
void StmtPrinter::VisitCXXExprWithTemporaries(CXXExprWithTemporaries *E) {
// Just forward to the sub expression.
PrintExpr(E->getSubExpr());