C++/Shared: Fix join order issues.

This commit is contained in:
Anders Schack-Mulligen
2024-05-15 11:54:42 +02:00
parent 5c635e982e
commit 8085460e4a
2 changed files with 20 additions and 18 deletions

View File

@@ -530,8 +530,8 @@ module MakeImplCommon<LocationSig Location, InputSig<Location> Lang> {
TCallEdge getAValue(TCallEdge ctxEdge) {
exists(DataFlowCall ctx, DataFlowCallable c, DataFlowCall call, DataFlowCallable tgt |
ctxEdge = TMkCallEdge(ctx, c) and
result = TMkCallEdge(call, tgt) and
ctxEdge = mkCallEdge(ctx, c) and
result = mkCallEdge(call, tgt) and
viableImplInCallContextExtIn(call, ctx) = tgt and
reducedViableImplInCallContext(call, c, ctx)
)
@@ -1505,7 +1505,7 @@ module MakeImplCommon<LocationSig Location, InputSig<Location> Lang> {
NodeRegion getAValue(TCallEdge edge) {
exists(DataFlowCall call, DataFlowCallable tgt |
edge = TMkCallEdge(call, tgt) and
edge = mkCallEdge(call, tgt) and
getNodeRegionEnclosingCallable(result) = tgt and
isUnreachableInCallCached(result, call)
)
@@ -1598,6 +1598,12 @@ module MakeImplCommon<LocationSig Location, InputSig<Location> Lang> {
TApproxAccessPathFrontSome(ApproxAccessPathFront apf)
}
bindingset[call, tgt]
pragma[inline_late]
private TCallEdge mkCallEdge(DataFlowCall call, DataFlowCallable tgt) {
result = TMkCallEdge(call, tgt)
}
bindingset[t1, t2]
pragma[inline_late]
private predicate typeStrongerThan0(DataFlowType t1, DataFlowType t2) { typeStrongerThan(t1, t2) }