From: Douglas Gregor Date: Mon, 13 Feb 2012 15:51:35 +0000 (+0000) Subject: Don't allocate unused storage for captures/capture initializers in lambda expressions X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=908a595945cbcbdb0232cec8ce61b0eeb5c17ff6;p=clang Don't allocate unused storage for captures/capture initializers in lambda expressions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150394 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/ExprCXX.cpp b/lib/AST/ExprCXX.cpp index 29ff69d312..1f8a57a4e3 100644 --- a/lib/AST/ExprCXX.cpp +++ b/lib/AST/ExprCXX.cpp @@ -781,13 +781,10 @@ LambdaExpr *LambdaExpr::Create(ASTContext &Context, // Determine the type of the expression (i.e., the type of the // function object we're creating). QualType T = Context.getTypeDeclType(Class); - size_t Size = sizeof(LambdaExpr) + sizeof(Capture) * Captures.size() - + sizeof(Stmt *) * (Captures.size() + 1); - void *Mem = Context.Allocate(Size, llvm::alignOf()); - return new (Mem) LambdaExpr(T, IntroducerRange, CaptureDefault, - Captures, ExplicitParams, CaptureInits, - ClosingBrace); + return new (Context) LambdaExpr(T, IntroducerRange, CaptureDefault, + Captures, ExplicitParams, CaptureInits, + ClosingBrace); } LambdaExpr::capture_iterator LambdaExpr::capture_begin() const {