@@ -10782,8 +10782,10 @@ static void diagnoseScopedEnums(Sema &S, const SourceLocation Loc,
10782
10782
}
10783
10783
10784
10784
QualType Sema::CheckMultiplyDivideOperands(ExprResult &LHS, ExprResult &RHS,
10785
- SourceLocation Loc,
10786
- bool IsCompAssign, bool IsDiv) {
10785
+ SourceLocation Loc, BinaryOperatorKind Opc) {
10786
+ bool IsCompAssign = Opc == BO_MulAssign || Opc == BO_DivAssign;
10787
+ bool IsDiv = Opc == BO_Div || Opc == BO_DivAssign;
10788
+
10787
10789
checkArithmeticNull(*this, LHS, RHS, Loc, /*IsCompare=*/false);
10788
10790
10789
10791
QualType LHSTy = LHS.get()->getType();
@@ -10813,10 +10815,7 @@ QualType Sema::CheckMultiplyDivideOperands(ExprResult &LHS, ExprResult &RHS,
10813
10815
10814
10816
if (compType.isNull() || !compType->isArithmeticType()) {
10815
10817
InvalidOperands(Loc, LHS, RHS);
10816
- diagnoseScopedEnums(*this, Loc, LHS, RHS,
10817
- IsCompAssign ? IsDiv ? BO_DivAssign : BO_MulAssign
10818
- : IsDiv ? BO_Div
10819
- : BO_Mul);
10818
+ diagnoseScopedEnums(*this, Loc, LHS, RHS, Opc);
10820
10819
return QualType();
10821
10820
}
10822
10821
if (IsDiv) {
@@ -15127,8 +15126,7 @@ ExprResult Sema::CreateBuiltinBinOp(SourceLocation OpLoc,
15127
15126
case BO_Mul:
15128
15127
case BO_Div:
15129
15128
ConvertHalfVec = true;
15130
- ResultTy = CheckMultiplyDivideOperands(LHS, RHS, OpLoc, false,
15131
- Opc == BO_Div);
15129
+ ResultTy = CheckMultiplyDivideOperands(LHS, RHS, OpLoc, Opc);
15132
15130
break;
15133
15131
case BO_Rem:
15134
15132
ResultTy = CheckRemainderOperands(LHS, RHS, OpLoc);
@@ -15183,8 +15181,7 @@ ExprResult Sema::CreateBuiltinBinOp(SourceLocation OpLoc,
15183
15181
case BO_MulAssign:
15184
15182
case BO_DivAssign:
15185
15183
ConvertHalfVec = true;
15186
- CompResultTy = CheckMultiplyDivideOperands(LHS, RHS, OpLoc, true,
15187
- Opc == BO_DivAssign);
15184
+ CompResultTy = CheckMultiplyDivideOperands(LHS, RHS, OpLoc, Opc);
15188
15185
CompLHSTy = CompResultTy;
15189
15186
if (!CompResultTy.isNull() && !LHS.isInvalid() && !RHS.isInvalid())
15190
15187
ResultTy =
0 commit comments