diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-05-16 06:20:58 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-05-16 06:20:58 +0000 |
| commit | ba71c085234044f8291b82749552a79d01f99631 (patch) | |
| tree | ad88c0f301afad274d85c38231e034b26b8bd300 /clang/lib/AST/StmtPrinter.cpp | |
| parent | ad9971d793e26c6d2ea28353f5b4dc6a2ee19833 (diff) | |
| download | bcm5719-llvm-ba71c085234044f8291b82749552a79d01f99631.tar.gz bcm5719-llvm-ba71c085234044f8291b82749552a79d01f99631.zip | |
First pass of semantic analysis for init-captures: check the initializer, build
a FieldDecl from it, and propagate both into the closure type and the
LambdaExpr.
You can't do much useful with them yet -- you can't use them within the body
of the lambda, because we don't have a representation for "the this of the
lambda, not the this of the enclosing context". We also don't have support or a
representation for a nested capture of an init-capture yet, which was intended
to work despite not being allowed by the current standard wording.
llvm-svn: 181985
Diffstat (limited to 'clang/lib/AST/StmtPrinter.cpp')
| -rw-r--r-- | clang/lib/AST/StmtPrinter.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/AST/StmtPrinter.cpp b/clang/lib/AST/StmtPrinter.cpp index 9203dc1584b..2edb078442f 100644 --- a/clang/lib/AST/StmtPrinter.cpp +++ b/clang/lib/AST/StmtPrinter.cpp @@ -1387,6 +1387,13 @@ void StmtPrinter::VisitLambdaExpr(LambdaExpr *Node) { OS << '='; OS << C->getCapturedVar()->getName(); break; + + case LCK_Init: + if (C->getInitCaptureField()->getType()->isReferenceType()) + OS << '&'; + OS << C->getInitCaptureField()->getName(); + PrintExpr(Node->getInitCaptureInit(C)); + break; } } OS << ']'; |

