File tree Expand file tree Collapse file tree 1 file changed +7
-1
lines changed
shared/controlflow/codeql/controlflow Expand file tree Collapse file tree 1 file changed +7
-1
lines changed Original file line number Diff line number Diff line change @@ -597,6 +597,12 @@ module Make<
597597 module Logic< LogicInputSig LogicInput> {
598598 private import LogicInput
599599
600+ bindingset [ bb1, bb2]
601+ pragma [ inline_late]
602+ private predicate strictlyDominatesCheck ( BasicBlock bb1 , BasicBlock bb2 ) {
603+ bb1 .strictlyDominates ( bb2 )
604+ }
605+
600606 /**
601607 * Holds if `guard` evaluating to `v` directly controls `phi` taking the value
602608 * `inp`. This means that `guard` evaluating to `v` must control all the input
@@ -614,7 +620,7 @@ module Make<
614620 exists ( BasicBlock bbPhi |
615621 phi .hasInputFromBlock ( inp , _) and
616622 phi .getBasicBlock ( ) = bbPhi and
617- guard .getBasicBlock ( ) . strictlyDominates ( bbPhi ) and
623+ strictlyDominatesCheck ( guard .getBasicBlock ( ) , bbPhi ) and
618624 not guard .directlyValueControls ( bbPhi , _) and
619625 forex ( BasicBlock bbInput | phi .hasInputFromBlock ( inp , bbInput ) |
620626 guard .directlyValueControls ( bbInput , v ) or
You can’t perform that action at this time.
0 commit comments