From 2da57f8105f0faff5cb7d671307f7cfc7ff2dce4 Mon Sep 17 00:00:00 2001 From: Yutong Zhu <115899167+YutongZhuu@users.noreply.github.com> Date: Fri, 9 May 2025 19:11:28 -0400 Subject: [Clang] Improve `-Wtautological-overlap-compare` diagnostics flag (#133653) This PR attempts to improve the diagnostics flag `-Wtautological-overlap-compare` (#13473). I have added code to warn about float-point literals and character literals. I have also changed the warning message for the non-overlapping case to provide a more correct hint to the user. Fixes #13473. --- clang/lib/Sema/AnalysisBasedWarnings.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'clang/lib/Sema/AnalysisBasedWarnings.cpp') diff --git a/clang/lib/Sema/AnalysisBasedWarnings.cpp b/clang/lib/Sema/AnalysisBasedWarnings.cpp index 2418aaf..d95844c 100644 --- a/clang/lib/Sema/AnalysisBasedWarnings.cpp +++ b/clang/lib/Sema/AnalysisBasedWarnings.cpp @@ -166,13 +166,14 @@ public: S.Diag(B->getExprLoc(), DiagID) << DiagRange; } - void compareAlwaysTrue(const BinaryOperator *B, bool isAlwaysTrue) override { + void compareAlwaysTrue(const BinaryOperator *B, + bool isAlwaysTrueOrFalse) override { if (HasMacroID(B)) return; SourceRange DiagRange = B->getSourceRange(); S.Diag(B->getExprLoc(), diag::warn_tautological_overlap_comparison) - << DiagRange << isAlwaysTrue; + << DiagRange << isAlwaysTrueOrFalse; } void compareBitwiseEquality(const BinaryOperator *B, -- cgit v1.1