summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParseExpr.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-08-04 15:30:47 +0000
committerDouglas Gregor <dgregor@apple.com>2011-08-04 15:30:47 +0000
commitdb0b9f12645992bf730b3230efa3bd79a6a98b1b (patch)
tree193a2ad1146d1ac9fbe4619892f8b783fce44ae6 /clang/lib/Parse/ParseExpr.cpp
parent96df560ce1224abca26d3a7785de63766f40a01a (diff)
downloadbcm5719-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.cpp10
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;
OpenPOWER on IntegriCloud