[clang] e71fd54 - [NFC] Move check for isEqualityOp to CheckFloatComparisons
Erich Keane via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 14 09:30:34 PDT 2022
Author: Erich Keane
Date: 2022-07-14T09:30:29-07:00
New Revision: e71fd547194591fbdfb617479e47b1b7cf6e9151
URL: https://github.com/llvm/llvm-project/commit/e71fd547194591fbdfb617479e47b1b7cf6e9151
DIFF: https://github.com/llvm/llvm-project/commit/e71fd547194591fbdfb617479e47b1b7cf6e9151.diff
LOG: [NFC] Move check for isEqualityOp to CheckFloatComparisons
So callers don't have to. Also, fix a clang-format/use of auto fix in
CheckFloatComparisons.
Added:
Modified:
clang/lib/Sema/SemaChecking.cpp
clang/lib/Sema/SemaExpr.cpp
Removed:
################################################################################
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index aed1d9befe2b..5112b781ed66 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/lib/Sema/SemaChecking.cpp
@@ -11883,6 +11883,9 @@ Sema::CheckReturnValExpr(Expr *RetValExp, QualType lhsType,
/// warning if the comparison is not likely to do what the programmer intended.
void Sema::CheckFloatComparison(SourceLocation Loc, Expr *LHS, Expr *RHS,
BinaryOperatorKind Opcode) {
+ if (!BinaryOperator::isEqualityOp(Opcode))
+ return;
+
// Match and capture subexpressions such as "(float) X == 0.1".
FloatingLiteral *FPLiteral;
CastExpr *FPCast;
@@ -11918,8 +11921,8 @@ void Sema::CheckFloatComparison(SourceLocation Loc, Expr *LHS, Expr *RHS,
// Special case: check for x == x (which is OK).
// Do not emit warnings for such cases.
- if (DeclRefExpr* DRL = dyn_cast<DeclRefExpr>(LeftExprSansParen))
- if (DeclRefExpr* DRR = dyn_cast<DeclRefExpr>(RightExprSansParen))
+ if (auto *DRL = dyn_cast<DeclRefExpr>(LeftExprSansParen))
+ if (auto *DRR = dyn_cast<DeclRefExpr>(RightExprSansParen))
if (DRL->getDecl() == DRR->getDecl())
return;
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 742c4828b8dc..c04186dea43e 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -12323,7 +12323,7 @@ static QualType checkArithmeticOrEnumeralCompare(Sema &S, ExprResult &LHS,
return S.InvalidOperands(Loc, LHS, RHS);
// Check for comparisons of floating point operands using != and ==.
- if (Type->hasFloatingRepresentation() && BinaryOperator::isEqualityOp(Opc))
+ if (Type->hasFloatingRepresentation())
S.CheckFloatComparison(Loc, LHS.get(), RHS.get(), Opc);
// The result of comparisons is 'bool' in C++, 'int' in C.
@@ -12933,8 +12933,7 @@ QualType Sema::CheckVectorCompareOperands(ExprResult &LHS, ExprResult &RHS,
diagnoseTautologicalComparison(*this, Loc, LHS.get(), RHS.get(), Opc);
// Check for comparisons of floating point operands using != and ==.
- if (BinaryOperator::isEqualityOp(Opc) &&
- LHSType->hasFloatingRepresentation()) {
+ if (LHSType->hasFloatingRepresentation()) {
assert(RHS.get()->getType()->hasFloatingRepresentation());
CheckFloatComparison(Loc, LHS.get(), RHS.get(), Opc);
}
@@ -12968,8 +12967,7 @@ QualType Sema::CheckSizelessVectorCompareOperands(ExprResult &LHS,
diagnoseTautologicalComparison(*this, Loc, LHS.get(), RHS.get(), Opc);
// Check for comparisons of floating point operands using != and ==.
- if (BinaryOperator::isEqualityOp(Opc) &&
- LHSType->hasFloatingRepresentation()) {
+ if (LHSType->hasFloatingRepresentation()) {
assert(RHS.get()->getType()->hasFloatingRepresentation());
CheckFloatComparison(Loc, LHS.get(), RHS.get(), Opc);
}
More information about the cfe-commits
mailing list