]> granicus.if.org Git - clang/commitdiff
Move handling of postfix-expression suffixes out of ParseCXXThis and into ParseCastEx...
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Sat, 16 Aug 2008 19:34:46 +0000 (19:34 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Sat, 16 Aug 2008 19:34:46 +0000 (19:34 +0000)
No functionality change, this follows the convention of how postfix-expressions are handled.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54849 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Parse/ParseExpr.cpp
lib/Parse/ParseExprCXX.cpp

index 2ecca33cf53a7265a4e3841e7639199f88bffb85..c8856198fd2d6ee6e3709932886b98de9302e465 100644 (file)
@@ -540,7 +540,9 @@ Parser::ExprResult Parser::ParseCastExpression(bool isUnaryExpression) {
   case tok::kw_static_cast:
     return ParseCXXCasts();
   case tok::kw_this:
-    return ParseCXXThis();
+    Res = ParseCXXThis();
+    // This can be followed by postfix-expr pieces.
+    return ParsePostfixExpressionSuffix(Res);
   case tok::at: {
     SourceLocation AtLoc = ConsumeToken();
     return ParseObjCAtExpression(AtLoc);
index 93eaa2dedd91febfb63da9b9d7dd2c317af15d3a..45f482792dc320161b73fe0667cc292534ceb595 100644 (file)
@@ -112,10 +112,5 @@ Parser::ExprResult Parser::ParseThrowExpression() {
 Parser::ExprResult Parser::ParseCXXThis() {
   assert(Tok.is(tok::kw_this) && "Not 'this'!");
   SourceLocation ThisLoc = ConsumeToken();
-
-  ExprResult Res = Actions.ActOnCXXThis(ThisLoc);
-  if (Res.isInvalid)
-    return Res;
-
-  return ParsePostfixExpressionSuffix(Res);
+  return Actions.ActOnCXXThis(ThisLoc);
 }