aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-05-27 05:00:47 +0000
committerDouglas Gregor <dgregor@apple.com>2009-05-27 05:00:47 +0000
commit7ff69269cf13583a981b265d4edee689feb4a830 (patch)
tree326f0c6373b6eda8b14b33529579dad540a9c693
parentd54b6ac2f4f6f0bd0076cbfa885b57277066f06c (diff)
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
-rw-r--r--lib/Sema/SemaExpr.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index 574955789c..9350caaca4 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -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));