diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-08-04 15:30:47 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-08-04 15:30:47 +0000 |
commit | db0b9f12645992bf730b3230efa3bd79a6a98b1b (patch) | |
tree | 193a2ad1146d1ac9fbe4619892f8b783fce44ae6 /clang/lib/Parse/ParseExpr.cpp | |
parent | 96df560ce1224abca26d3a7785de63766f40a01a (diff) | |
download | bcm5719-llvm-db0b9f12645992bf730b3230efa3bd79a6a98b1b.tar.gz bcm5719-llvm-db0b9f12645992bf730b3230efa3bd79a6a98b1b.zip |
Parsing of C++0x lambda expressions, from John Freeman with help from
David Blaikie!
llvm-svn: 136876
Diffstat (limited to 'clang/lib/Parse/ParseExpr.cpp')
-rw-r--r-- | clang/lib/Parse/ParseExpr.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp index 3cd1f3987aa..42d56c3693b 100644 --- a/clang/lib/Parse/ParseExpr.cpp +++ b/clang/lib/Parse/ParseExpr.cpp @@ -1115,6 +1115,16 @@ ExprResult Parser::ParseCastExpression(bool isUnaryExpression, NotCastExpr, isTypeCast); } case tok::l_square: + if (getLang().CPlusPlus0x) { + if (getLang().ObjC1) { + Res = TryParseLambdaExpression(); + if (Res.isInvalid()) + Res = ParseObjCMessageExpression(); + break; + } + Res = ParseLambdaExpression(); + break; + } if (getLang().ObjC1) { Res = ParseObjCMessageExpression(); break; |