Index: lib/Sema/SemaExpr.cpp =================================================================== --- lib/Sema/SemaExpr.cpp +++ lib/Sema/SemaExpr.cpp @@ -990,6 +990,12 @@ RHS = S.ImpCastExprToType(RHS.get(), ResultType, CK_FloatingComplexCast); else RHS = S.ImpCastExprToType(RHS.get(), LHSElementType, CK_FloatingCast); + } else { + // Convert either RHS or LHS from real to complex. + if (LHSComplexType) + RHS = S.ImpCastExprToType(RHS.get(), ResultType, CK_FloatingRealToComplex); + else + LHS = S.ImpCastExprToType(LHS.get(), ResultType, CK_FloatingRealToComplex); } return ResultType; }