Files
codeql/csharp/ql/test/library-tests/controlflow/graph/Condition.ql
Anders Schack-Mulligen 8b50ac291f C#: Use shared SuccessorType.
2025-09-01 12:53:24 +02:00

19 lines
556 B
Plaintext

import csharp
import ControlFlow
query predicate conditionBlock(
BasicBlocks::ConditionBlock cb, BasicBlock controlled, boolean testIsTrue
) {
cb.edgeDominates(controlled, any(ConditionalSuccessor s | testIsTrue = s.getValue()))
}
ControlFlow::Node successor(ControlFlow::Node node, boolean kind) {
kind = true and result = node.getATrueSuccessor()
or
kind = false and result = node.getAFalseSuccessor()
}
query predicate conditionFlow(ControlFlow::Node node, ControlFlow::Node successor, boolean kind) {
successor = successor(node, kind)
}