Fix subtle bug introduced in r54852.
 - UsualUnaryConversions takes an Expr *& and may modify its argument,
   this broke when it was refactored into Sema::CheckCastTypes. This
   meant that we were missing implicit casts in some places.
 - Seems pretty sad that this got through our tests.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55039 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index ed01085..4bb5482 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -871,7 +871,7 @@
   bool CheckStringLiteralInit(StringLiteral *strLiteral, QualType &DeclT);
 
   /// CheckCastTypes - Check type constraints for casting between types.
-  bool CheckCastTypes(SourceRange TyRange, QualType CastTy, Expr *CastExpr);
+  bool CheckCastTypes(SourceRange TyRange, QualType CastTy, Expr *&CastExpr);
   
   // CheckVectorCast - check type constraints for vectors. 
   // Since vectors are an extension, there are no C standard reference for this.