[PATCH] [C++11] Support for capturing of variable length arrays in lambda expression.
Richard Smith
richard at metafoo.co.uk
Mon Jul 21 21:57:54 PDT 2014
On Mon, Jul 21, 2014 at 5:43 AM, Alexey Bataev <a.bataev at hotmail.com> wrote:
> Updated version after last review. Unfortunately, I don't think it is
> possible to pass captured expression as a VariableLengthArray *. I have to
> capture expr of VariableLengthArray * and then cast it to
> SizeExpr->getType() type to make lambda capture this type, not
> VariableLengthArray *. I have to pass actual value of SizeExpr to the
> Lambda in this field, because it is defined only in calling function and in
> Lambda it can be received only in one of captured fields.
I don't understand what you're saying. What I'm suggesting is storing the
VariableLengthArray* in the InitializerOrBitWidth field on FieldDecl,
instead of storing the array bound there.
> http://reviews.llvm.org/D4368
>
> Files:
> include/clang/AST/Decl.h
> include/clang/AST/LambdaCapture.h
> include/clang/Basic/DiagnosticSemaKinds.td
> lib/AST/Decl.cpp
> lib/AST/Expr.cpp
> lib/AST/ExprCXX.cpp
> lib/AST/StmtPrinter.cpp
> lib/AST/StmtProfile.cpp
> lib/CodeGen/CGDebugInfo.cpp
> lib/CodeGen/CGExprCXX.cpp
> lib/CodeGen/CodeGenFunction.cpp
> lib/Sema/SemaDecl.cpp
> lib/Sema/SemaExpr.cpp
> lib/Sema/TreeTransform.h
> test/CodeGenCXX/instantiate-typeof-vla.cpp
> test/SemaTemplate/instantiate-typeof.cpp
> tools/libclang/IndexBody.cpp
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140721/4a688d5f/attachment.html>
More information about the cfe-commits
mailing list