HomePhabricator

[analyzer][IDF] Add a control dependency calculator + a new debug checker

Authored by Szelethus on Jul 5 2019, 5:17 AM.

Description

[analyzer][IDF] Add a control dependency calculator + a new debug checker

I intend to improve the analyzer's bug reports by tracking condition
expressions.

01 bool b = messyComputation();
02 int i = 0;
03 if (b) control dependency of the bug site, let's explain why we assume val
04
to be true
05 10 / i; // warn: division by zero

I'll detail this heuristic in the followup patch, strictly related to this one
however:

  • Create the new ControlDependencyCalculator class that uses llvm::IDFCalculator to (lazily) calculate control dependencies for Clang's CFG.
  • A new debug checker debug.DumpControlDependencies is added for lit tests
  • Add unittests

Differential Revision: https://reviews.llvm.org/D62619

llvm-svn: 365197