@@ -627,6 +627,7 @@ module CFG {
627627 * Holds if `succ` is a successor of `pred`, ignoring the execution of any
628628 * deferred functions when a function ends.
629629 */
630+ pragma [ nomagic]
630631 predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
631632 exists ( int i |
632633 lastNode ( this .getChildTreeRanked ( i ) , pred , normalCompletion ( ) ) and
@@ -734,6 +735,7 @@ module CFG {
734735 last = this .getNode ( ) and cmpl = this .getCompletion ( )
735736 }
736737
738+ pragma [ nomagic]
737739 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
738740 super .succ0 ( pred , succ )
739741 or
@@ -757,6 +759,7 @@ module CFG {
757759 cmpl = Done ( )
758760 }
759761
762+ pragma [ nomagic]
760763 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
761764 super .succ0 ( pred , succ )
762765 or
@@ -860,6 +863,7 @@ module CFG {
860863 cmpl = Done ( )
861864 }
862865
866+ pragma [ nomagic]
863867 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
864868 ControlFlowTree .super .succ0 ( pred , succ )
865869 or
@@ -985,6 +989,7 @@ module CFG {
985989 )
986990 }
987991
992+ pragma [ nomagic]
988993 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
989994 exists ( Completion lcmpl |
990995 lastNode ( this .getLeftOperand ( ) , pred , lcmpl ) and
@@ -1035,6 +1040,7 @@ module CFG {
10351040 not result instanceof TypeExpr
10361041 }
10371042
1043+ pragma [ nomagic]
10381044 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
10391045 // interpose implicit argument destructuring nodes between last argument
10401046 // and call itself; this is for cases like `f(g())` where `g` has multiple
@@ -1109,6 +1115,7 @@ module CFG {
11091115 lastNode ( this .getStmt ( this .getNumStmt ( ) - 1 ) , last , cmpl )
11101116 }
11111117
1118+ pragma [ nomagic]
11121119 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
11131120 ControlFlowTree .super .succ0 ( pred , succ )
11141121 or
@@ -1179,6 +1186,7 @@ module CFG {
11791186 cmpl = Done ( )
11801187 }
11811188
1189+ pragma [ nomagic]
11821190 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
11831191 this .firstNode ( pred ) and
11841192 succ = this .getElementStart ( 0 )
@@ -1257,6 +1265,7 @@ module CFG {
12571265 cmpl = Done ( )
12581266 }
12591267
1268+ pragma [ nomagic]
12601269 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
12611270 lastNode ( this .getInit ( ) , pred , normalCompletion ( ) ) and
12621271 firstNode ( this .getCond ( ) , succ )
@@ -1288,6 +1297,7 @@ module CFG {
12881297 ( cmpl = Done ( ) or cmpl = Panic ( ) )
12891298 }
12901299
1300+ pragma [ nomagic]
12911301 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
12921302 lastNode ( this .getBase ( ) , pred , normalCompletion ( ) ) and
12931303 (
@@ -1325,6 +1335,7 @@ module CFG {
13251335
13261336 override predicate lastNode ( ControlFlow:: Node last , Completion cmpl ) { none ( ) }
13271337
1338+ pragma [ nomagic]
13281339 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
13291340 ControlFlowTree .super .succ0 ( pred , succ )
13301341 or
@@ -1381,6 +1392,7 @@ module CFG {
13811392 i = 5 and result = this .getBody ( )
13821393 }
13831394
1395+ pragma [ nomagic]
13841396 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
13851397 exists ( int i , ControlFlowTree predTree , Completion cmpl |
13861398 predTree = this .getChildTreeRanked ( i ) and
@@ -1453,6 +1465,7 @@ module CFG {
14531465
14541466 override predicate lastNode ( ControlFlow:: Node last , Completion cmpl ) { none ( ) }
14551467
1468+ pragma [ nomagic]
14561469 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
14571470 exists ( int i |
14581471 pred = this .getPrologueNode ( i ) and
@@ -1527,6 +1540,7 @@ module CFG {
15271540 cmpl = Done ( )
15281541 }
15291542
1543+ pragma [ nomagic]
15301544 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
15311545 lastNode ( this .getOperand ( ) , pred , normalCompletion ( ) ) and
15321546 succ = MkImplicitOne ( this )
@@ -1558,6 +1572,7 @@ module CFG {
15581572 not cmpl .isNormal ( )
15591573 }
15601574
1575+ pragma [ nomagic]
15611576 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
15621577 lastNode ( this .getDomain ( ) , pred , normalCompletion ( ) ) and
15631578 succ = MkNextNode ( this )
@@ -1633,6 +1648,7 @@ module CFG {
16331648
16341649 override Completion getCompletion ( ) { result = Return ( ) }
16351650
1651+ pragma [ nomagic]
16361652 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
16371653 exists ( int i |
16381654 lastNode ( this .getExpr ( i ) , pred , normalCompletion ( ) ) and
@@ -1689,6 +1705,7 @@ module CFG {
16891705 )
16901706 }
16911707
1708+ pragma [ nomagic]
16921709 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
16931710 ControlFlowTree .super .succ0 ( pred , succ )
16941711 or
@@ -1788,6 +1805,7 @@ module CFG {
17881805 cmpl = Done ( )
17891806 }
17901807
1808+ pragma [ nomagic]
17911809 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
17921810 exists ( int i | pred = this .getStepWithRank ( i ) and succ = this .getStepWithRank ( i + 1 ) )
17931811 }
@@ -1825,6 +1843,7 @@ module CFG {
18251843 ( cmpl = Done ( ) or cmpl = Panic ( ) )
18261844 }
18271845
1846+ pragma [ nomagic]
18281847 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
18291848 ControlFlowTree .super .succ0 ( pred , succ )
18301849 or
@@ -1854,6 +1873,7 @@ module CFG {
18541873 ( cmpl = Done ( ) or cmpl = Panic ( ) )
18551874 }
18561875
1876+ pragma [ nomagic]
18571877 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
18581878 ControlFlowTree .super .succ0 ( pred , succ )
18591879 or
@@ -1941,6 +1961,7 @@ module CFG {
19411961 )
19421962 }
19431963
1964+ pragma [ nomagic]
19441965 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
19451966 ControlFlowTree .super .succ0 ( pred , succ )
19461967 or
@@ -2015,6 +2036,7 @@ module CFG {
20152036 )
20162037 }
20172038
2039+ pragma [ nomagic]
20182040 override predicate succ0 ( ControlFlow:: Node pred , ControlFlow:: Node succ ) {
20192041 ControlFlowTree .super .succ0 ( pred , succ )
20202042 or
0 commit comments