Don't drop the computed implicit conversions when building a call to
overloaded operator[] or overloaded postfix unary operator (++,
--). Thanks to Eli for finding this bug!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72460 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index 5749557..9350caa 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -1609,6 +1609,7 @@
         UsualUnaryConversions(FnExpr);
 
         Input.release();
+        Args[0] = Arg;
         return Owned(new (Context) CXXOperatorCallExpr(Context, OverOp, FnExpr,
                                                        Args, 2, ResultTy, 
                                                        OpLoc));
@@ -1725,6 +1726,8 @@
 
         Base.release();
         Idx.release();
+        Args[0] = LHSExp;
+        Args[1] = RHSExp;
         return Owned(new (Context) CXXOperatorCallExpr(Context, OO_Subscript,
                                                        FnExpr, Args, 2, 
                                                        ResultTy, LLoc));