Files
codeql/python/ql/test/library-tests/ControlFlow/general/ImmediateDominatorCheck.ql
Taus Brock-Nannestad f07a7bf8cf Python: Autoformat everything using qlformat.
Will need subsequent PRs fixing up test failures (due to deprecated
methods moving around), but other than that everything should be
straight-forward.
2020-07-07 15:43:52 +02:00

20 lines
527 B
Plaintext

import python
predicate can_reach_from_entry_without_passing(ControlFlowNode target, ControlFlowNode pass) {
target != pass and
target.getScope() = pass.getScope() and
(
target.isEntryNode()
or
exists(ControlFlowNode pre |
target.getAPredecessor() = pre and can_reach_from_entry_without_passing(pre, pass)
)
)
}
from ControlFlowNode node, ControlFlowNode dom
where
dom = node.getImmediateDominator() and
can_reach_from_entry_without_passing(node, dom)
select node.toString(), dom.toString()