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