Files
codeql/cpp/ql/src/Metrics/Functions/FunIterationNestingDepth.ql
Jonas Jensen 4ef5c9af62 C++: Autoformat everything
Some files that will change in #1736 have been spared.

    ./build -j4 target/jars/qlformat
    find ql/cpp/ql -name "*.ql"  -print0 | xargs -0 target/jars/qlformat --input
    find ql/cpp/ql -name "*.qll" -print0 | xargs -0 target/jars/qlformat --input
    (cd ql && git checkout 'cpp/ql/src/semmle/code/cpp/ir/implementation/**/*SSA*.qll')
    buildutils-internal/scripts/pr-checks/sync-identical-files.py --latest
2019-09-09 11:25:53 +02:00

22 lines
574 B
Plaintext

/**
* @name Iteration depth
* @description The maximum number of nested loops in each function.
* @kind treemap
* @id cpp/iteration-nesting-depth-per-function
* @treemap.warnOn highValues
* @metricType callable
* @metricAggregate avg max
* @tags maintainability
* complexity
*/
import cpp
int iterationDepth(Stmt l) { result = count(Loop other | l.getParent*() = other) }
from Function f, int depth
where
depth = max(Stmt s | s.getEnclosingFunction() = f | iterationDepth(s)) and
strictcount(f.getEntryPoint()) = 1
select f, depth order by depth desc