Skip to content

Commit 76baf51

Browse files
committed
[Clang]: Refactor Sema::CheckMultiplyDivideOperands for clarity
1 parent e22ad8b commit 76baf51

File tree

2 files changed

+9
-12
lines changed

2 files changed

+9
-12
lines changed

clang/include/clang/Sema/Sema.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8055,8 +8055,8 @@ class Sema final : public SemaBase {
80558055
ExprResult &RHS);
80568056

80578057
QualType CheckMultiplyDivideOperands( // C99 6.5.5
8058-
ExprResult &LHS, ExprResult &RHS, SourceLocation Loc, bool IsCompAssign,
8059-
bool IsDivide);
8058+
ExprResult &LHS, ExprResult &RHS, SourceLocation Loc,
8059+
BinaryOperatorKind Opc);
80608060
QualType CheckRemainderOperands( // C99 6.5.5
80618061
ExprResult &LHS, ExprResult &RHS, SourceLocation Loc,
80628062
bool IsCompAssign = false);

clang/lib/Sema/SemaExpr.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10782,8 +10782,10 @@ static void diagnoseScopedEnums(Sema &S, const SourceLocation Loc,
1078210782
}
1078310783

1078410784
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+
1078710789
checkArithmeticNull(*this, LHS, RHS, Loc, /*IsCompare=*/false);
1078810790

1078910791
QualType LHSTy = LHS.get()->getType();
@@ -10813,10 +10815,7 @@ QualType Sema::CheckMultiplyDivideOperands(ExprResult &LHS, ExprResult &RHS,
1081310815

1081410816
if (compType.isNull() || !compType->isArithmeticType()) {
1081510817
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);
1082010819
return QualType();
1082110820
}
1082210821
if (IsDiv) {
@@ -15127,8 +15126,7 @@ ExprResult Sema::CreateBuiltinBinOp(SourceLocation OpLoc,
1512715126
case BO_Mul:
1512815127
case BO_Div:
1512915128
ConvertHalfVec = true;
15130-
ResultTy = CheckMultiplyDivideOperands(LHS, RHS, OpLoc, false,
15131-
Opc == BO_Div);
15129+
ResultTy = CheckMultiplyDivideOperands(LHS, RHS, OpLoc, Opc);
1513215130
break;
1513315131
case BO_Rem:
1513415132
ResultTy = CheckRemainderOperands(LHS, RHS, OpLoc);
@@ -15183,8 +15181,7 @@ ExprResult Sema::CreateBuiltinBinOp(SourceLocation OpLoc,
1518315181
case BO_MulAssign:
1518415182
case BO_DivAssign:
1518515183
ConvertHalfVec = true;
15186-
CompResultTy = CheckMultiplyDivideOperands(LHS, RHS, OpLoc, true,
15187-
Opc == BO_DivAssign);
15184+
CompResultTy = CheckMultiplyDivideOperands(LHS, RHS, OpLoc, Opc);
1518815185
CompLHSTy = CompResultTy;
1518915186
if (!CompResultTy.isNull() && !LHS.isInvalid() && !RHS.isInvalid())
1519015187
ResultTy =

0 commit comments

Comments
 (0)