Deleted Added
full compact
284a285,296
> SourceRange CXXConstructExpr::getSourceRange() const {
> // FIXME: Should we know where the parentheses are, if there are any?
> for (std::reverse_iterator<Stmt**> I(&Args[NumArgs]), E(&Args[0]); I!=E;++I) {
> // Ignore CXXDefaultExprs when computing the range, as they don't
> // have a range.
> if (!isa<CXXDefaultArgExpr>(*I))
> return SourceRange(Loc, (*I)->getLocEnd());
> }
>
> return SourceRange(Loc);
> }
>
342a355,369
> CXXDefaultArgExpr *
> CXXDefaultArgExpr::Create(ASTContext &C, SourceLocation Loc,
> ParmVarDecl *Param, Expr *SubExpr) {
> void *Mem = C.Allocate(sizeof(CXXDefaultArgExpr) + sizeof(Stmt *));
> return new (Mem) CXXDefaultArgExpr(CXXDefaultArgExprClass, Loc, Param,
> SubExpr);
> }
>
> void CXXDefaultArgExpr::DoDestroy(ASTContext &C) {
> if (Param.getInt())
> getExpr()->Destroy(C);
> this->~CXXDefaultArgExpr();
> C.Deallocate(this);
> }
>
375,376c402,403
< : CXXConstructExpr(C, CXXTemporaryObjectExprClass, writtenTy, Cons,
< false, Args, NumArgs),
---
> : CXXConstructExpr(C, CXXTemporaryObjectExprClass, writtenTy, tyBeginLoc,
> Cons, false, Args, NumArgs),
380a408
> SourceLocation Loc,
382,384c410,413
< Expr **Args, unsigned NumArgs) {
< return new (C) CXXConstructExpr(C, CXXConstructExprClass, T, D, Elidable,
< Args, NumArgs);
---
> Expr **Args, unsigned NumArgs,
> bool ZeroInitialization) {
> return new (C) CXXConstructExpr(C, CXXConstructExprClass, T, Loc, D,
> Elidable, Args, NumArgs, ZeroInitialization);
387a417
> SourceLocation Loc,
389c419,420
< Expr **args, unsigned numargs)
---
> Expr **args, unsigned numargs,
> bool ZeroInitialization)
394,401c425,433
< Constructor(D), Elidable(elidable), Args(0), NumArgs(numargs) {
< if (NumArgs) {
< Args = new (C) Stmt*[NumArgs];
<
< for (unsigned i = 0; i != NumArgs; ++i) {
< assert(args[i] && "NULL argument in CXXConstructExpr");
< Args[i] = args[i];
< }
---
> Constructor(D), Loc(Loc), Elidable(elidable),
> ZeroInitialization(ZeroInitialization), Args(0), NumArgs(numargs)
> {
> if (NumArgs) {
> Args = new (C) Stmt*[NumArgs];
>
> for (unsigned i = 0; i != NumArgs; ++i) {
> assert(args[i] && "NULL argument in CXXConstructExpr");
> Args[i] = args[i];
402a435
> }
423,424c456
< unsigned numtemps,
< bool shoulddestroytemps)
---
> unsigned numtemps)
427,428c459
< SubExpr(subexpr), Temps(0), NumTemps(numtemps),
< ShouldDestroyTemps(shoulddestroytemps) {
---
> SubExpr(subexpr), Temps(0), NumTemps(numtemps) {
439,442c470,471
< unsigned NumTemps,
< bool ShouldDestroyTemps){
< return new (C) CXXExprWithTemporaries(SubExpr, Temps, NumTemps,
< ShouldDestroyTemps);
---
> unsigned NumTemps) {
> return new (C) CXXExprWithTemporaries(SubExpr, Temps, NumTemps);