From 2517f334b44bbdd255fd602cdbf74703991e5fd5 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Wed, 27 May 2009 05:00:47 +0000 Subject: [PATCH] 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! llvm-svn: 72460 --- clang/lib/Sema/SemaExpr.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 574955789cf8..9350caaca47c 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/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));