Skip to content

Commit 1d87f07

Browse files
committed
Dataflow: Minor refactor.
1 parent e8b12ce commit 1d87f07

File tree

1 file changed

+15
-23
lines changed

1 file changed

+15
-23
lines changed

java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1204,14 +1204,6 @@ module Impl<FullStateConfigSig Config> {
12041204
filter(node, state, t, ap)
12051205
}
12061206

1207-
pragma[inline]
1208-
additional predicate fwdFlow(
1209-
NodeEx node, FlowState state, Cc cc, ParamNodeOption summaryCtx, TypOption argT,
1210-
ApOption argAp, Typ t, Ap ap
1211-
) {
1212-
fwdFlow(node, state, cc, summaryCtx, argT, argAp, t, ap, _)
1213-
}
1214-
12151207
pragma[assume_small_delta]
12161208
pragma[nomagic]
12171209
private predicate fwdFlow0(
@@ -1359,7 +1351,7 @@ module Impl<FullStateConfigSig Config> {
13591351
ParamNodeOption summaryCtx, TypOption argT, ApOption argAp
13601352
) {
13611353
exists(ApHeadContent apc |
1362-
fwdFlow(node1, state, cc, summaryCtx, argT, argAp, t, ap) and
1354+
fwdFlow(node1, state, cc, summaryCtx, argT, argAp, t, ap, _) and
13631355
apc = getHeadContent(ap) and
13641356
readStepCand0(node1, apc, c, node2)
13651357
)
@@ -1520,14 +1512,14 @@ module Impl<FullStateConfigSig Config> {
15201512
NodeEx node, FlowState state, ReturnCtx returnCtx, ApOption returnAp, Ap ap
15211513
) {
15221514
revFlow0(node, state, returnCtx, returnAp, ap) and
1523-
fwdFlow(node, state, _, _, _, _, _, ap)
1515+
fwdFlow(node, state, _, _, _, _, _, ap, _)
15241516
}
15251517

15261518
pragma[nomagic]
15271519
private predicate revFlow0(
15281520
NodeEx node, FlowState state, ReturnCtx returnCtx, ApOption returnAp, Ap ap
15291521
) {
1530-
fwdFlow(node, state, _, _, _, _, _, ap) and
1522+
fwdFlow(node, state, _, _, _, _, _, ap, _) and
15311523
sinkNode(node, state) and
15321524
(
15331525
if hasSinkCallCtx()
@@ -1780,13 +1772,13 @@ module Impl<FullStateConfigSig Config> {
17801772
boolean fwd, int nodes, int fields, int conscand, int states, int tuples
17811773
) {
17821774
fwd = true and
1783-
nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, _, _, _)) and
1775+
nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, _, _, _, _)) and
17841776
fields = count(Content f0 | fwdConsCand(f0, _, _)) and
17851777
conscand = count(Content f0, Typ t, Ap ap | fwdConsCand(f0, t, ap)) and
1786-
states = count(FlowState state | fwdFlow(_, state, _, _, _, _, _, _)) and
1778+
states = count(FlowState state | fwdFlow(_, state, _, _, _, _, _, _, _)) and
17871779
tuples =
17881780
count(NodeEx n, FlowState state, Cc cc, ParamNodeOption summaryCtx, TypOption argT,
1789-
ApOption argAp, Typ t, Ap ap | fwdFlow(n, state, cc, summaryCtx, argT, argAp, t, ap))
1781+
ApOption argAp, Typ t, Ap ap | fwdFlow(n, state, cc, summaryCtx, argT, argAp, t, ap, _))
17901782
or
17911783
fwd = false and
17921784
nodes = count(NodeEx node | revFlow(node, _, _, _, _)) and
@@ -2197,8 +2189,8 @@ module Impl<FullStateConfigSig Config> {
21972189
import BooleanCallContext
21982190

21992191
predicate localStep(
2200-
NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue,
2201-
DataFlowType t, LocalCc lcc
2192+
NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, Typ t,
2193+
LocalCc lcc
22022194
) {
22032195
localFlowBigStep(node1, state1, node2, state2, preservesValue, t, _) and
22042196
exists(lcc)
@@ -2274,8 +2266,8 @@ module Impl<FullStateConfigSig Config> {
22742266

22752267
pragma[nomagic]
22762268
predicate localStep(
2277-
NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue,
2278-
DataFlowType t, LocalCc lcc
2269+
NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, Typ t,
2270+
LocalCc lcc
22792271
) {
22802272
localFlowBigStep(node1, state1, node2, state2, preservesValue, t, _) and
22812273
PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and
@@ -2365,7 +2357,7 @@ module Impl<FullStateConfigSig Config> {
23652357
exists(AccessPathFront apf |
23662358
Stage4::revFlow(node, state, TReturnCtxMaybeFlowThrough(_), _, apf) and
23672359
Stage4::fwdFlow(node, state, any(Stage4::CcCall ccc), _, _, TAccessPathFrontSome(argApf), _,
2368-
apf)
2360+
apf, _)
23692361
)
23702362
}
23712363

@@ -2579,8 +2571,8 @@ module Impl<FullStateConfigSig Config> {
25792571
import LocalCallContext
25802572

25812573
predicate localStep(
2582-
NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue,
2583-
DataFlowType t, LocalCc lcc
2574+
NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, Typ t,
2575+
LocalCc lcc
25842576
) {
25852577
localFlowBigStep(node1, state1, node2, state2, preservesValue, t, lcc) and
25862578
PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and
@@ -2632,7 +2624,7 @@ module Impl<FullStateConfigSig Config> {
26322624
Stage5::parameterMayFlowThrough(p, _) and
26332625
Stage5::revFlow(n, state, TReturnCtxMaybeFlowThrough(_), _, apa0) and
26342626
Stage5::fwdFlow(n, state, any(CallContextCall ccc), TParamNodeSome(p.asNode()), _,
2635-
TAccessPathApproxSome(apa), _, apa0)
2627+
TAccessPathApproxSome(apa), _, apa0, _)
26362628
)
26372629
}
26382630

@@ -2649,7 +2641,7 @@ module Impl<FullStateConfigSig Config> {
26492641
TSummaryCtxSome(ParamNodeEx p, FlowState state, DataFlowType t, AccessPath ap) {
26502642
exists(AccessPathApprox apa | ap.getApprox() = apa |
26512643
Stage5::parameterMayFlowThrough(p, apa) and
2652-
Stage5::fwdFlow(p, state, _, _, _, _, t, apa) and
2644+
Stage5::fwdFlow(p, state, _, _, _, _, t, apa, _) and
26532645
Stage5::revFlow(p, state, _)
26542646
)
26552647
}

0 commit comments

Comments
 (0)