In c99 mode, comma does do function/array promotion even though 
it does not do unary promotions (like short->int).

llvm-svn: 54058
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 0e70c82..71482c2 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -1894,7 +1894,9 @@
 
 inline QualType Sema::CheckCommaOperands( // C99 6.5.17
   Expr *&lex, Expr *&rex, SourceLocation loc) {
-  // Comma does not perform unary or binary promotions.
+  
+  // Comma performs lvalue conversion (C99 6.3.2.1), but not unary conversions.
+  DefaultFunctionArrayConversion(rex);
   return rex->getType();
 }