virtual child_iterator child_end();
};
-
/// CXXConstructExpr - Represents a call to a C++ constructor.
class CXXConstructExpr : public Expr {
VarDecl *VD;
Stmt **Args;
unsigned NumArgs;
- CXXConstructExpr(ASTContext &C, VarDecl *vd, QualType T,
- CXXConstructorDecl *d, bool elidable,
- Expr **args, unsigned numargs);
~CXXConstructExpr() { }
+protected:
+ CXXConstructExpr(ASTContext &C, StmtClass SC, VarDecl *vd, QualType T,
+ CXXConstructorDecl *d, bool elidable,
+ Expr **args, unsigned numargs);
+
public:
static CXXConstructExpr *Create(ASTContext &C, VarDecl *VD, QualType T,
CXXConstructorDecl *D, bool Elidable,
QualType T, CXXConstructorDecl *D,
bool Elidable,
Expr **Args, unsigned NumArgs) {
- return new (C) CXXConstructExpr(C, VD, T, D, Elidable, Args, NumArgs);
+ return new (C) CXXConstructExpr(C, CXXConstructExprClass, VD, T, D, Elidable,
+ Args, NumArgs);
}
-CXXConstructExpr::CXXConstructExpr(ASTContext &C, VarDecl *vd,
+CXXConstructExpr::CXXConstructExpr(ASTContext &C, StmtClass SC, VarDecl *vd,
QualType T, CXXConstructorDecl *D,
bool elidable,
Expr **args, unsigned numargs)
-: Expr(CXXConstructExprClass, T,
+: Expr(SC, T,
T->isDependentType(),
(T->isDependentType() ||
CallExpr::hasAnyValueDependentArguments(args, numargs))),