/**
* @name Flow Statistics
* @description Count the number points-to sets with 0 or 1 incoming flow edges, and the total number of points-to sets
* @kind table
* @id cpp/points-to/stats
* @deprecated This query is not suitable for production use and has been deprecated.
*/
import cpp
import semmle.code.cpp.pointsto.PointsTo
predicate inc(int set, int cnt) {
(setflow(set, _) or setflow(_, set)) and
cnt = count(int i | setflow(i, set) and i != set)
}
select count(int set | inc(set, _)) as total, count(int set | inc(set, 0)) as nullary,
count(int set | inc(set, 1)) as unary, total - nullary - unary as rest