diff options
author | John Wiegley <johnw@boostpro.com> | 2011-04-25 06:54:41 +0000 |
---|---|---|
committer | John Wiegley <johnw@boostpro.com> | 2011-04-25 06:54:41 +0000 |
commit | f9f6584e950ed92b679afd056e0872388c95cf20 (patch) | |
tree | 67c1813adee3d1d82541ebfbbe806356e1d7e9a6 /clang/lib/Parse/ParseExpr.cpp | |
parent | 03b77b37d60fc1a218709a7d3705bc2998c83685 (diff) | |
download | bcm5719-llvm-f9f6584e950ed92b679afd056e0872388c95cf20.tar.gz bcm5719-llvm-f9f6584e950ed92b679afd056e0872388c95cf20.zip |
t/clang/expr-traits
Patch authored by David Abrahams.
These two expression traits (__is_lvalue_expr, __is_rvalue_expr) are used for
parsing code that employs certain features of the Embarcadero C++ compiler.
llvm-svn: 130122
Diffstat (limited to 'clang/lib/Parse/ParseExpr.cpp')
-rw-r--r-- | clang/lib/Parse/ParseExpr.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp index cd8f9c53f75..12761e8d9f8 100644 --- a/clang/lib/Parse/ParseExpr.cpp +++ b/clang/lib/Parse/ParseExpr.cpp @@ -555,6 +555,10 @@ ExprResult Parser::ParseCastExpression(bool isUnaryExpression, /// [GNU] '__is_base_of' /// [MS] '__is_convertible_to' /// +/// [Embarcadero] expression-trait: +/// '__is_lvalue_expr' +/// '__is_rvalue_expr' +/// ExprResult Parser::ParseCastExpression(bool isUnaryExpression, bool isAddressOfOperand, bool &NotCastExpr, @@ -1021,6 +1025,10 @@ ExprResult Parser::ParseCastExpression(bool isUnaryExpression, case tok::kw___is_convertible_to: return ParseBinaryTypeTrait(); + case tok::kw___is_lvalue_expr: + case tok::kw___is_rvalue_expr: + return ParseExpressionTrait(); + case tok::at: { SourceLocation AtLoc = ConsumeToken(); return ParseObjCAtExpression(AtLoc); |