[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