[clang-tools-extra] r286222 - [clang-tidy] clang-analyzer-alpha* checks are not registered, so there's no need to disable them

Malcolm Parsons via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 10 01:56:59 PST 2016


On 9 November 2016 at 18:50, Devin Coughlin <dcoughlin at apple.com> wrote:

> We agree that this is a valuable checker and are committed to getting it out of alpha. This check is in alpha because:
>
> a) The diagnostic experience is not very good. It reports a call path directly in the diagnostic message (for example “Call path: foo <— bar” for a call to foo() in bar()) rather than as a path diagnostic.

Agreed.

> b) The lack of path-sensitive reasoning may result in false positives when a called function uses a member variable flag to track whether initialization is complete and does not call the virtual member function during initialization.

Right, we're not doing this.

> c) The check issues a warning for both calls to pure virtual functions (which is always an error) and non-pure virtual functions (which is more of a code smell and may be a false positive).

I'm using static analysis to find code smells.

> I’ll commit to doing Step 1) in the immediate future and Step 2) eventually. Once the checker is on by default we’ll need to assess whether the false positive rate from c) is too high — if so, we’ll need to turn the non-pure-virtual case off by default.

LGTM.

Thanks,
-- 
Malcolm Parsons


More information about the cfe-commits mailing list