Skip to content

Commit 4d8b782

Browse files
committed
Shared: Also expose dataflow stage 1's forward flow predicate.
1 parent 2d76b41 commit 4d8b782

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

shared/dataflow/codeql/dataflow/internal/DataFlowImplStage1.qll

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@ module MakeImplStage1<LocationSig Location, InputSig<Location> Lang> {
9191

9292
class ApNil extends Ap;
9393

94+
predicate fwdFlow(Nd node);
95+
96+
predicate fwdFlow(Nd node, Ap ap);
97+
9498
predicate revFlow(Nd node);
9599

96100
predicate revFlow(Nd node, Ap ap);
@@ -634,7 +638,7 @@ module MakeImplStage1<LocationSig Location, InputSig<Location> Lang> {
634638
)
635639
}
636640

637-
private predicate fwdFlow(NodeEx node) { fwdFlow(node, _) }
641+
predicate fwdFlow(NodeEx node) { fwdFlow(node, _) }
638642

639643
pragma[nomagic]
640644
private predicate fwdFlowReadSet(ContentSet c, NodeEx node, Cc cc) {
@@ -1291,6 +1295,13 @@ module MakeImplStage1<LocationSig Location, InputSig<Location> Lang> {
12911295
import Stage1
12921296
import Stage1Common
12931297

1298+
predicate fwdFlow(Nd node) { Stage1::fwdFlow(node) }
1299+
1300+
predicate fwdFlow(Nd node, Ap ap) {
1301+
Stage1::fwdFlow(node) and
1302+
exists(ap)
1303+
}
1304+
12941305
predicate revFlow(NodeEx node, Ap ap) { Stage1::revFlow(node) and exists(ap) }
12951306

12961307
predicate toNormalSinkNode = toNormalSinkNodeEx/1;
@@ -1395,6 +1406,10 @@ module MakeImplStage1<LocationSig Location, InputSig<Location> Lang> {
13951406

13961407
import Stage1Common
13971408

1409+
predicate fwdFlow(Nd node) { Stage1::fwdFlow(node.getNodeEx()) }
1410+
1411+
predicate fwdFlow(Nd node, Ap ap) { Stage1::fwdFlow(node.getNodeEx()) and exists(ap) }
1412+
13981413
predicate revFlow(Nd node) { Stage1::revFlow(node.getNodeEx()) }
13991414

14001415
predicate revFlow(Nd node, Ap ap) { Stage1::revFlow(node.getNodeEx()) and exists(ap) }

0 commit comments

Comments
 (0)