PR11391: Don't try to evaluate the LHS of a _Complex assignment as an rvalue.

llvm-svn: 144799
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index 699d817..f461ec6 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/lib/AST/ExprConstant.cpp
@@ -3695,10 +3695,14 @@
 }
 
 bool ComplexExprEvaluator::VisitBinaryOperator(const BinaryOperator *E) {
+  if (E->isPtrMemOp() || E->isAssignmentOp())
+    return ExprEvaluatorBaseTy::VisitBinaryOperator(E);
+
   if (E->getOpcode() == BO_Comma) {
     VisitIgnoredValue(E->getLHS());
     return Visit(E->getRHS());
   }
+
   if (!Visit(E->getLHS()))
     return false;