mirror of
https://github.com/github/codeql.git
synced 2026-07-29 23:00:09 +02:00
21 lines
668 B
Plaintext
21 lines
668 B
Plaintext
/**
|
|
* New-CFG version of NoBackwardFlow.
|
|
*
|
|
* Checks that time never flows backward between consecutive timer annotations
|
|
* in the CFG. For each pair of consecutive annotated nodes (A -> B), there must
|
|
* exist timestamps a in A and b in B with a < b.
|
|
*/
|
|
|
|
import python
|
|
import NewCfgImpl
|
|
|
|
private module Utils = EvalOrderCfgUtils<NewCfg>;
|
|
|
|
private import Utils
|
|
private import Utils::CfgTests
|
|
|
|
from TimerCfgNode a, TimerCfgNode b, int minA, int maxB
|
|
where noBackwardFlow(a, b, minA, maxB)
|
|
select a, "Backward flow: $@ flows to $@ (max timestamp $@)", a.getTimestampExpr(minA),
|
|
minA.toString(), b, b.getNode().toString(), b.getTimestampExpr(maxB), maxB.toString()
|