File tree Expand file tree Collapse file tree 1 file changed +3
-0
lines changed
shared/controlflow/codeql/controlflow Expand file tree Collapse file tree 1 file changed +3
-0
lines changed Original file line number Diff line number Diff line change @@ -807,12 +807,14 @@ module Make<LocationSig Location, InputSig<Location> Input> {
807
807
* Calculates the transitive closure of all the guard implication steps
808
808
* starting from a given set of base cases.
809
809
*/
810
+ cached
810
811
module ImpliesTC< baseGuardValueSig / 2 baseGuardValue> {
811
812
/**
812
813
* Holds if `tgtGuard` evaluating to `tgtVal` implies that `guard`
813
814
* evaluates to `v`.
814
815
*/
815
816
pragma [ nomagic]
817
+ cached
816
818
predicate guardControls ( Guard guard , GuardValue v , Guard tgtGuard , GuardValue tgtVal ) {
817
819
baseGuardValue ( tgtGuard , tgtVal ) and
818
820
guard = tgtGuard and
@@ -844,6 +846,7 @@ module Make<LocationSig Location, InputSig<Location> Input> {
844
846
* evaluates to `v`.
845
847
*/
846
848
pragma [ nomagic]
849
+ cached
847
850
predicate ssaControls ( SsaDefinition def , GuardValue v , Guard tgtGuard , GuardValue tgtVal ) {
848
851
exists ( Guard g0 |
849
852
guardControls ( g0 , v , tgtGuard , tgtVal ) and
You can’t perform that action at this time.
0 commit comments