mirror of
https://github.com/github/codeql.git
synced 2026-04-11 18:14:01 +02:00
Shared: Also expose dataflow stage 1's forward flow predicate.
This commit is contained in:
@@ -91,6 +91,10 @@ module MakeImplStage1<LocationSig Location, InputSig<Location> Lang> {
|
||||
|
||||
class ApNil extends Ap;
|
||||
|
||||
predicate fwdFlow(Nd node);
|
||||
|
||||
predicate fwdFlow(Nd node, Ap ap);
|
||||
|
||||
predicate revFlow(Nd node);
|
||||
|
||||
predicate revFlow(Nd node, Ap ap);
|
||||
@@ -634,7 +638,7 @@ module MakeImplStage1<LocationSig Location, InputSig<Location> Lang> {
|
||||
)
|
||||
}
|
||||
|
||||
private predicate fwdFlow(NodeEx node) { fwdFlow(node, _) }
|
||||
predicate fwdFlow(NodeEx node) { fwdFlow(node, _) }
|
||||
|
||||
pragma[nomagic]
|
||||
private predicate fwdFlowReadSet(ContentSet c, NodeEx node, Cc cc) {
|
||||
@@ -1291,6 +1295,13 @@ module MakeImplStage1<LocationSig Location, InputSig<Location> Lang> {
|
||||
import Stage1
|
||||
import Stage1Common
|
||||
|
||||
predicate fwdFlow(Nd node) { Stage1::fwdFlow(node) }
|
||||
|
||||
predicate fwdFlow(Nd node, Ap ap) {
|
||||
Stage1::fwdFlow(node) and
|
||||
exists(ap)
|
||||
}
|
||||
|
||||
predicate revFlow(NodeEx node, Ap ap) { Stage1::revFlow(node) and exists(ap) }
|
||||
|
||||
predicate toNormalSinkNode = toNormalSinkNodeEx/1;
|
||||
@@ -1395,6 +1406,10 @@ module MakeImplStage1<LocationSig Location, InputSig<Location> Lang> {
|
||||
|
||||
import Stage1Common
|
||||
|
||||
predicate fwdFlow(Nd node) { Stage1::fwdFlow(node.getNodeEx()) }
|
||||
|
||||
predicate fwdFlow(Nd node, Ap ap) { Stage1::fwdFlow(node.getNodeEx()) and exists(ap) }
|
||||
|
||||
predicate revFlow(Nd node) { Stage1::revFlow(node.getNodeEx()) }
|
||||
|
||||
predicate revFlow(Nd node, Ap ap) { Stage1::revFlow(node.getNodeEx()) and exists(ap) }
|
||||
|
||||
Reference in New Issue
Block a user