You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Almost all loops are transformed by CIL, so the loop constructs all get synthetic locations. Filtering them from the locator could give some odd behavior: if the location is right before the loop and all the synthetic loop head stuff is filtered, then the first non-synthetic node is already inside the loop, not outside where the location actually was.
112
+
Similarly, if synthetic locations are then filtered, witness.invariant.loop-head becomes essentially useless.
113
+
I guess at some point during testing and benchmarking I achieved better results with the filtering removed. *)
Almost all loops are transformed by CIL, so the loop constructs all get synthetic locations. Filtering them from the locator could give some odd behavior: if the location is right before the loop and all the synthetic loop head stuff is filtered, then the first non-synthetic node is already inside the loop, not outside where the location actually was.
591
-
Similarly, if synthetic locations are then filtered, witness.invariant.loop-head becomes essentially useless.
592
-
I guess at some point during testing and benchmarking I achieved better results with the filtering removed. *)
593
569
ifWitnessInvariant.is_invariant_node n then
594
570
Locator.add locator loc lvar;
595
-
ifWitnessUtil.NH.mem WitnessInvariant.loop_heads n then
0 commit comments