Dataflow: Fix missing subpaths due to type strengthening.

This commit is contained in:
Anders Schack-Mulligen
2024-08-15 15:06:24 +02:00
parent fb7b89f309
commit 86708c9ff8
2 changed files with 5 additions and 3 deletions

View File

@@ -4878,12 +4878,13 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
PathNodeImpl arg, PathNodeImpl par, PathNodeImpl ret, PathNodeImpl out
) {
exists(
ParamNodeEx p, NodeEx o, FlowState sout, DataFlowType t, AccessPath apout,
PathNodeMid out0
ParamNodeEx p, NodeEx o, FlowState sout, DataFlowType t0, DataFlowType t,
AccessPath apout, PathNodeMid out0
|
pragma[only_bind_into](arg).getASuccessorImpl(_) = pragma[only_bind_into](out0) and
subpaths03(pragma[only_bind_into](arg), p, ret, o, sout, t, apout) and
subpaths03(pragma[only_bind_into](arg), p, ret, o, sout, t0, apout) and
hasSuccessor(pragma[only_bind_into](arg), par, p) and
strengthenType(o, t0, t) and
pathNode(out0, o, sout, _, _, t, apout, _, _)
|
out = out0 or out = out0.projectToSink(_)