Fix bad join order

This commit is contained in:
Owen Mansel-Chan
2025-09-19 15:22:12 +01:00
parent 6cb69535a5
commit a9420d46c8

View File

@@ -103,6 +103,10 @@ private Field getASparselyUsedChannelTypedField() {
count(result.getARead()) = 2 count(result.getARead()) = 2
} }
bindingset[v]
pragma[inline_late]
private predicate jumpStepHelper(ValueEntity v, Node n) { n = v.getARead() }
/** /**
* Holds if data can flow from `node1` to `node2` in a way that loses the * Holds if data can flow from `node1` to `node2` in a way that loses the
* calling context. For example, this would happen with flow through a * calling context. For example, this would happen with flow through a
@@ -117,7 +121,7 @@ predicate jumpStep(Node n1, Node n2) {
or or
n1.(DataFlow::PostUpdateNode).getPreUpdateNode() = v.getARead() n1.(DataFlow::PostUpdateNode).getPreUpdateNode() = v.getARead()
) and ) and
n2 = v.getARead() jumpStepHelper(v, n2)
) )
or or
exists(SsaExplicitDefinition def, SsaVariableCapture succ | exists(SsaExplicitDefinition def, SsaVariableCapture succ |