[PATCH] D91037: [clang-tidy] Fix crash in bugprone-redundant-branch-condition on ExprWithCleanups

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 12 04:43:30 PST 2020


aaron.ballman added inline comments.


================
Comment at: clang-tools-extra/test/clang-tidy/checkers/bugprone-redundant-branch-condition.cpp:1092
+      // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: redundant condition 'isSet' [bugprone-redundant-branch-condition]
+      // CHECK-FIXES: {{isSet}}
+    }
----------------
zinovy.nis wrote:
> aaron.ballman wrote:
> > There's not a whole lot of context for FileCheck to determine if it's been correctly applied or not (same below) -- for instance, won't this pass even if no changes are applied because FileCheck is still going to find `isSet` in the file?
> Thanks. Fixed.
Maybe it's just early in the morning for me, but... I was expecting the transformation to be:
```
if (RetT::Test(isSet).Ok() && isSet) {
  if (RetT::Test(isSet).Ok() && isSet) {
  }
}
```
turns into
```
if (RetT::Test(isSet).Ok() && isSet) {
}
```
Why does it remove the `&& isSet` instead? That seems like it's changing the logic here from `if (true && false)` to `if (true)`.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91037/new/

https://reviews.llvm.org/D91037



More information about the cfe-commits mailing list