[PATCH] D33537: [clang-tidy] Exception Escape Checker

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 13 07:45:17 PDT 2017


erichkeane added a comment.

In https://reviews.llvm.org/D33537#801889, @baloghadamsoftware wrote:

> In https://reviews.llvm.org/D33537#771274, @aaron.ballman wrote:
>
> > The check in https://reviews.llvm.org/D33333 is using a CFG, not just checking direct throws.
>
>
> I tested the latest revision (the fronted patch already included) on my test file. Disregarding of the not so important parameters (`EnabledFunctions` and `IgnoredExceptions`) I do not get warnings for any indirect throws (`indirect_implicit()` and `indirect_explicit()`). So for me it does not seem to be using the CFG. Furthermore, I do not get warning for `throw_and_catch_some()` where `1.1` is a `double` thus `catch(int &)` should not catch it. The same happens in `throw_catch_rethrow_the_rest()`, where `catch(int &)` should not catch `1.1`, but `catch(...)` should catch and rethrow it. This latter may be a bug.


Jen Yu can clarify, but I believe it was decided to put the implementation in the CFG, but not do a full analysis (leave that for a later implementation).  It is not doing 'catch' analysis, and I don't believe they decided to do analysis on the function call itself, since the false-positive rate is massive thanks to the C headers.


https://reviews.llvm.org/D33537





More information about the cfe-commits mailing list