From 6a03e345bb3c971750920e34a0d7d1ea7c9eceb7 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Fri, 23 Apr 2010 04:16:32 +0000 Subject: Handle compound assignment expressions (i += j) as lvalues, which is permitted in C++ but not in C. Fixes PR6900. Clang can now handle all of Boost.Lambda's regression tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102170 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CGExpr.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lib/CodeGen/CGExpr.cpp') diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp index 085113edf5..76ad40b2fc 100644 --- a/lib/CodeGen/CGExpr.cpp +++ b/lib/CodeGen/CGExpr.cpp @@ -478,6 +478,8 @@ LValue CodeGenFunction::EmitLValue(const Expr *E) { return EmitObjCIsaExpr(cast(E)); case Expr::BinaryOperatorClass: return EmitBinaryOperatorLValue(cast(E)); + case Expr::CompoundAssignOperatorClass: + return EmitCompoundAssignOperatorLValue(cast(E)); case Expr::CallExprClass: case Expr::CXXMemberCallExprClass: case Expr::CXXOperatorCallExprClass: -- cgit v1.2.3-70-g09d2