summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan James <n.james93@hotmail.co.uk>2022-09-24 18:29:17 +0100
committerTobias Hieta <tobias@hieta.se>2022-10-18 08:28:42 +0200
commitdfef316bb3d60edcb7a9f78abc62be78473458dc (patch)
tree039823bec6993a4c794d3f5c52afcaf594093e5e
parentd35bc70e82511b38c55872ab33d3a950d2c8bbc4 (diff)
downloadllvm-dfef316bb3d60edcb7a9f78abc62be78473458dc.tar.gz
[clang-tidy] Fix a false positive in readability-simplify-boolean-expr
Reviewed By: LegalizeAdulthood Differential Revision: https://reviews.llvm.org/D134590 (cherry picked from commit 8c783b8ec78ec857e446a89a35463baed8026f40)
-rw-r--r--clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp4
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/readability/simplify-bool-expr-chained-conditional-return.cpp11
2 files changed, 13 insertions, 2 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
index 8ae990a929df..afb4a1044a79 100644
--- a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
@@ -472,8 +472,8 @@ public:
checkSingleStatement(If->getThen(), parseReturnLiteralBool);
if (ThenReturnBool &&
ThenReturnBool.Bool != TrailingReturnBool.Bool) {
- if (Check->ChainedConditionalReturn ||
- (!PrevIf && If->getElse() == nullptr)) {
+ if ((Check->ChainedConditionalReturn || !PrevIf) &&
+ If->getElse() == nullptr) {
Check->replaceCompoundReturnWithCondition(
Context, cast<ReturnStmt>(*Second), TrailingReturnBool.Bool,
If, ThenReturnBool.Item);
diff --git a/clang-tools-extra/test/clang-tidy/checkers/readability/simplify-bool-expr-chained-conditional-return.cpp b/clang-tools-extra/test/clang-tidy/checkers/readability/simplify-bool-expr-chained-conditional-return.cpp
index 7e97e9f717fb..ff50528c215f 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/readability/simplify-bool-expr-chained-conditional-return.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/readability/simplify-bool-expr-chained-conditional-return.cpp
@@ -92,3 +92,14 @@ bool complex_chained_if_return_return_negated(int i) {
// CHECK-FIXES: {{^}} }{{$}}
// CHECK-FIXES: {{^ return i <= 10;$}}
// CHECK-FIXES: {{^}$}}
+
+
+bool PR57819(int x) {
+ // False positive introduced in clang-tidy-15
+ // Expect no warning here.
+ if (x > 0)
+ return false;
+ else {
+ }
+ return true;
+}