Fix undesirable join order.

This commit is contained in:
Cornelius Riemenschneider
2019-09-24 15:53:13 +02:00
committed by Anders Schack-Mulligen
parent ee5503146e
commit 393fb02dfa

View File

@@ -687,6 +687,11 @@ private module ImplCommon {
override predicate validFor(Node n) { any() }
}
pragma[noinline]
private predicate hasUnreachableNode(DataFlowCall call, DataFlowCallable callable) {
isUnreachableInCall(any(Node n | n.getEnclosingCallable() = callable), call)
}
class LocalCallContextSpecificCall extends LocalCallContext, TSpecificLocalCall {
LocalCallContextSpecificCall() { this = TSpecificLocalCall(call) }
@@ -701,9 +706,7 @@ private module ImplCommon {
}
override predicate validFor(Node n) {
exists(Node n2 |
isUnreachableInCall(n2, call) and n2.getEnclosingCallable() = n.getEnclosingCallable()
)
hasUnreachableNode(call, n.getEnclosingCallable())
}
}