[PATCH] D47122: [clang-tidy] SimplifyBoolenExpr doesn't add parens if unary negotiation is of ExprWithCleanups type

Zinovy Nis via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 22 13:10:35 PDT 2018


zinovy.nis added inline comments.


================
Comment at: clang-tools-extra/trunk/clang-tidy/readability/SimplifyBooleanExprCheck.cpp:198
   E = E->ignoreParenBaseCasts();
+  if (const auto *EC = dyn_cast<ExprWithCleanups>(E))
+    E = EC->getSubExpr();
----------------
zinovy.nis wrote:
> malcolm.parsons wrote:
> > `E->IgnoreImplicit()` can be used to ignore `ExprWithCleanups`
> Thanks. But it seems to be too agressive:
> 
> 
> ```
> return (i & 1) != 0;
> ```
> 
> becomes 
> 
> ```
> return static_cast<bool>(i & 1);
> ```
> 
```
  if (!isa<ImplicitCastExpr>(E))
    E = E->IgnoreImplicit();

```

works properly but looks a bit verbose. What do you think?


Repository:
  rL LLVM

https://reviews.llvm.org/D47122





More information about the llvm-commits mailing list