Index: test/Sema/vector-cast.c
===================================================================
--- test/Sema/vector-cast.c	(revision 78903)
+++ test/Sema/vector-cast.c	(working copy)
@@ -20,7 +20,7 @@
 type 't1' and scalar type 'char *'}}
   v1 = (t1)(long long)10;
   v1 = (t1)(short)10; // -expected-error {{invalid conversion between vector \
-type 't1' and integer type 'int' of different size}}
+type 't1' and integer type 'short' of different size}}
   
   long long r1 = (long long)v1;
   short r2 = (short)v1; // -expected-error {{invalid conversion between vector \
Index: lib/Sema/SemaExpr.cpp
===================================================================
--- lib/Sema/SemaExpr.cpp	(revision 78903)
+++ lib/Sema/SemaExpr.cpp	(working copy)
@@ -2992,7 +2992,7 @@
   if (getLangOptions().CPlusPlus)
     return CXXCheckCStyleCast(TyR, castType, castExpr, Kind, FunctionalStyle);
 
-  UsualUnaryConversions(castExpr);
+  DefaultFunctionArrayConversion(castExpr);
 
   // C99 6.5.4p2: the cast type needs to be void or scalar and the expression
   // type needs to be scalar.
