]> granicus.if.org Git - clang/commitdiff
Don't drop the computed implicit conversions when building a call to
authorDouglas Gregor <dgregor@apple.com>
Wed, 27 May 2009 05:00:47 +0000 (05:00 +0000)
committerDouglas Gregor <dgregor@apple.com>
Wed, 27 May 2009 05:00:47 +0000 (05:00 +0000)
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

lib/Sema/SemaExpr.cpp

index 574955789cf82b5b321468d8232a209d8b99d21b..9350caaca47cdd88b6d7cb2a7fd0e125234907b9 100644 (file)
@@ -1609,6 +1609,7 @@ Sema::ActOnPostfixUnaryOp(Scope *S, SourceLocation OpLoc,
         UsualUnaryConversions(FnExpr);
 
         Input.release();
+        Args[0] = Arg;
         return Owned(new (Context) CXXOperatorCallExpr(Context, OverOp, FnExpr,
                                                        Args, 2, ResultTy, 
                                                        OpLoc));
@@ -1725,6 +1726,8 @@ Sema::ActOnArraySubscriptExpr(Scope *S, ExprArg Base, SourceLocation LLoc,
 
         Base.release();
         Idx.release();
+        Args[0] = LHSExp;
+        Args[1] = RHSExp;
         return Owned(new (Context) CXXOperatorCallExpr(Context, OO_Subscript,
                                                        FnExpr, Args, 2, 
                                                        ResultTy, LLoc));