Skip to content

Commit 20db548

Browse files
authored
Merge pull request #18263 from hvitved/dataflow/remove-column
Data flow: Remove unused column from `flowThroughOutOfCall`
2 parents 03f962e + 40d9460 commit 20db548

File tree

1 file changed

+14
-17
lines changed

1 file changed

+14
-17
lines changed

shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll

+14-17
Original file line numberDiff line numberDiff line change
@@ -1440,13 +1440,12 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
14401440

14411441
pragma[nomagic]
14421442
private predicate flowThroughOutOfCall(
1443-
DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow
1443+
DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow
14441444
) {
14451445
exists(ReturnKindExt kind |
14461446
PrevStage::callEdgeReturn(call, _, ret, kind, out, allowsFieldFlow) and
14471447
PrevStage::callMayFlowThroughRev(call) and
1448-
PrevStage::returnMayFlowThrough(ret, kind) and
1449-
matchesCall(ccc, call)
1448+
PrevStage::returnMayFlowThrough(ret, kind)
14501449
)
14511450
}
14521451

@@ -1568,9 +1567,9 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
15681567
apa = getApprox(ap)
15691568
or
15701569
// flow through a callable
1571-
exists(DataFlowCall call, CcCall ccc, RetNodeEx ret, boolean allowsFieldFlow |
1572-
fwdFlowThrough(call, cc, state, ccc, summaryCtx, t, ap, stored, ret) and
1573-
flowThroughOutOfCall(call, ccc, ret, node, allowsFieldFlow) and
1570+
exists(DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow |
1571+
fwdFlowThrough(call, cc, state, summaryCtx, t, ap, stored, ret) and
1572+
flowThroughOutOfCall(call, ret, node, allowsFieldFlow) and
15741573
apa = getApprox(ap) and
15751574
not inBarrier(node, state) and
15761575
if allowsFieldFlow = false then ap instanceof ApNil else any()
@@ -2098,10 +2097,10 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
20982097

20992098
pragma[nomagic]
21002099
private predicate fwdFlowThrough(
2101-
DataFlowCall call, Cc cc, FlowState state, CcCall ccc, SummaryCtx summaryCtx, Typ t,
2102-
Ap ap, TypOption stored, RetNodeEx ret
2100+
DataFlowCall call, Cc cc, FlowState state, SummaryCtx summaryCtx, Typ t, Ap ap,
2101+
TypOption stored, RetNodeEx ret
21032102
) {
2104-
fwdFlowThrough0(call, _, cc, state, ccc, summaryCtx, t, ap, stored, ret, _)
2103+
fwdFlowThrough0(call, _, cc, state, _, summaryCtx, t, ap, stored, ret, _)
21052104
}
21062105

21072106
pragma[nomagic]
@@ -2156,7 +2155,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
21562155
exists(DataFlowCall call, boolean allowsFieldFlow |
21572156
returnFlowsThrough0(call, state, ccc, ap, ret,
21582157
TSummaryCtxSome(p, _, argT, argAp, argStored)) and
2159-
flowThroughOutOfCall(call, ccc, ret, _, allowsFieldFlow) and
2158+
flowThroughOutOfCall(call, ret, _, allowsFieldFlow) and
21602159
pos = ret.getReturnPosition() and
21612160
if allowsFieldFlow = false then ap instanceof ApNil else any()
21622161
)
@@ -3155,12 +3154,11 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
31553154
pragma[nomagic]
31563155
private predicate fwdFlowThroughStep1(
31573156
PathNodeImpl pn1, PathNodeImpl pn2, PathNodeImpl pn3, DataFlowCall call, Cc cc,
3158-
FlowState state, CcCall ccc, SummaryCtx summaryCtx, Typ t, Ap ap, TypOption stored,
3159-
RetNodeEx ret
3157+
FlowState state, SummaryCtx summaryCtx, Typ t, Ap ap, TypOption stored, RetNodeEx ret
31603158
) {
31613159
exists(
31623160
FlowState state0, ArgNodeEx arg, SummaryCtxSome innerSummaryCtx, ParamNodeEx p,
3163-
Typ innerArgT, Ap innerArgAp, TypOption innerArgStored
3161+
Typ innerArgT, Ap innerArgAp, TypOption innerArgStored, CcCall ccc
31643162
|
31653163
fwdFlowThroughStep0(call, arg, cc, state, ccc, summaryCtx, t, ap, stored, ret,
31663164
innerSummaryCtx) and
@@ -3178,10 +3176,9 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
31783176
PathNodeImpl pn1, PathNodeImpl pn2, PathNodeImpl pn3, NodeEx node, Cc cc,
31793177
FlowState state, SummaryCtx summaryCtx, Typ t, Ap ap, TypOption stored
31803178
) {
3181-
exists(DataFlowCall call, CcCall ccc, RetNodeEx ret, boolean allowsFieldFlow |
3182-
fwdFlowThroughStep1(pn1, pn2, pn3, call, cc, state, ccc, summaryCtx, t, ap, stored,
3183-
ret) and
3184-
flowThroughOutOfCall(call, ccc, ret, node, allowsFieldFlow) and
3179+
exists(DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow |
3180+
fwdFlowThroughStep1(pn1, pn2, pn3, call, cc, state, summaryCtx, t, ap, stored, ret) and
3181+
flowThroughOutOfCall(call, ret, node, allowsFieldFlow) and
31853182
not inBarrier(node, state) and
31863183
if allowsFieldFlow = false then ap instanceof ApNil else any()
31873184
)

0 commit comments

Comments
 (0)