[cfe-commits] r60928 - /cfe/trunk/lib/Parse/ParseExpr.cpp

Chris Lattner sabre at nondot.org
Thu Dec 11 22:00:12 PST 2008


Author: lattner
Date: Fri Dec 12 00:00:12 2008
New Revision: 60928

URL: http://llvm.org/viewvc/llvm-project?rev=60928&view=rev
Log:
minor refactoring of ParseParenExpression

Modified:
    cfe/trunk/lib/Parse/ParseExpr.cpp

Modified: cfe/trunk/lib/Parse/ParseExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseExpr.cpp?rev=60928&r1=60927&r2=60928&view=diff

==============================================================================
--- cfe/trunk/lib/Parse/ParseExpr.cpp (original)
+++ cfe/trunk/lib/Parse/ParseExpr.cpp Fri Dec 12 00:00:12 2008
@@ -1062,34 +1062,37 @@
       if (!Result.isInvalid())
         return Owned(Actions.ActOnCompoundLiteral(OpenLoc, Ty, RParenLoc,
                                                   Result.release()));
-    } else if (ExprType == CastExpr) {
+      return move(Result);
+    }
+    
+    if (ExprType == CastExpr) {
       // Note that this doesn't parse the subsequence cast-expression, it just
       // returns the parsed type to the callee.
       ExprType = CastExpr;
       CastTy = Ty;
       return OwningExprResult(Actions);
-    } else {
-      Diag(Tok, diag::err_expected_lbrace_in_compound_literal);
-      return ExprError();
     }
-    return move(Result);
+    
+    Diag(Tok, diag::err_expected_lbrace_in_compound_literal);
+    return ExprError();
   } else {
     Result = ParseExpression();
     ExprType = SimpleExpr;
     if (!Result.isInvalid() && Tok.is(tok::r_paren))
-      Result = Actions.ActOnParenExpr(
-        OpenLoc, Tok.getLocation(), Result.release());
+      Result = Actions.ActOnParenExpr(OpenLoc, Tok.getLocation(),
+                                      Result.release());
   }
 
   // Match the ')'.
-  if (Result.isInvalid())
+  if (Result.isInvalid()) {
     SkipUntil(tok::r_paren);
-  else {
-    if (Tok.is(tok::r_paren))
-      RParenLoc = ConsumeParen();
-    else
-      MatchRHSPunctuation(tok::r_paren, OpenLoc);
+    return ExprError();
   }
+  
+  if (Tok.is(tok::r_paren))
+    RParenLoc = ConsumeParen();
+  else
+    MatchRHSPunctuation(tok::r_paren, OpenLoc);
 
   return move(Result);
 }





More information about the cfe-commits mailing list