Parse "sizeof(arr)[0]" as a sizeof of an expr if arr 
is an expression.

llvm-svn: 44065
diff --git a/clang/Parse/ParseExpr.cpp b/clang/Parse/ParseExpr.cpp
index 2bc1d62..c1a200c 100644
--- a/clang/Parse/ParseExpr.cpp
+++ b/clang/Parse/ParseExpr.cpp
@@ -748,11 +748,15 @@
     
     // If ParseParenExpression parsed a '(typename)' sequence only, the this is
     // sizeof/alignof a type.  Otherwise, it is sizeof/alignof an expression.
-    if (ExprType == CastExpr) {
+    if (ExprType == CastExpr)
       return Actions.ActOnSizeOfAlignOfTypeExpr(OpTok.getLocation(),
                                                 OpTok.is(tok::kw_sizeof),
                                                 LParenLoc, CastTy, RParenLoc);
-    }
+    
+    // If this is a parenthesized expression, it is the start of a 
+    // unary-expression, but doesn't include any postfix pieces.  Parse these
+    // now if present.
+    Operand = ParsePostfixExpressionSuffix(Operand);
   }
   
   // If we get here, the operand to the sizeof/alignof was an expresion.