aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Zegar <me@piotrzegar.pl>2024-06-09 09:01:41 +0200
committerGitHub <noreply@github.com>2024-06-09 09:01:41 +0200
commitd211abc625cc7bbc8616885bb8eaf4a69a9a3853 (patch)
tree25e172cf7c8aa28adbf9170672298fdc60f2c3ba
parentcc8fa1e9206aa69197c891ca2f17b64340c5a6aa (diff)
downloadllvm-d211abc625cc7bbc8616885bb8eaf4a69a9a3853.zip
llvm-d211abc625cc7bbc8616885bb8eaf4a69a9a3853.tar.gz
llvm-d211abc625cc7bbc8616885bb8eaf4a69a9a3853.tar.bz2
[clang-tidy] Ignore non-math operators in readability-math-missing-parentheses (#94654)
Do not emit warnings for non-math operators. Closes #92516
-rw-r--r--clang-tools-extra/clang-tidy/readability/MathMissingParenthesesCheck.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/readability/math-missing-parentheses.cpp17
2 files changed, 19 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/MathMissingParenthesesCheck.cpp b/clang-tools-extra/clang-tidy/readability/MathMissingParenthesesCheck.cpp
index 65fd296..64ce94e 100644
--- a/clang-tools-extra/clang-tidy/readability/MathMissingParenthesesCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/MathMissingParenthesesCheck.cpp
@@ -57,7 +57,8 @@ static void addParantheses(const BinaryOperator *BinOp,
int Precedence1 = getPrecedence(BinOp);
int Precedence2 = getPrecedence(ParentBinOp);
- if (ParentBinOp != nullptr && Precedence1 != Precedence2) {
+ if (ParentBinOp != nullptr && Precedence1 != Precedence2 && Precedence1 > 0 &&
+ Precedence2 > 0) {
const clang::SourceLocation StartLoc = BinOp->getBeginLoc();
const clang::SourceLocation EndLoc =
clang::Lexer::getLocForEndOfToken(BinOp->getEndLoc(), 0, SM, LangOpts);
diff --git a/clang-tools-extra/test/clang-tidy/checkers/readability/math-missing-parentheses.cpp b/clang-tools-extra/test/clang-tidy/checkers/readability/math-missing-parentheses.cpp
index a6045c0..4face0b 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/readability/math-missing-parentheses.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/readability/math-missing-parentheses.cpp
@@ -140,3 +140,20 @@ void f(){
//CHECK-MESSAGES: :[[@LINE+1]]:13: warning: '*' has higher precedence than '+'; add parentheses to explicitly specify the order of operations [readability-math-missing-parentheses]
int v = FUN5(0 + 1);
}
+
+namespace PR92516 {
+ void f(int i) {
+ int j, k;
+ for (j = i + 1, k = 0; j < 1; ++j) {}
+ }
+
+ void f2(int i) {
+ int j;
+ for (j = i + 1; j < 1; ++j) {}
+ }
+
+ void f3(int i) {
+ int j;
+ for (j = i + 1, 2; j < 1; ++j) {}
+ }
+}