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
This adds the predicate __CPROVER_pointer_in_range to the C frontend. The
expression __CPROVER_pointer_in_range(a, b, c) evaluates to true iff the
following conditions are met:
1) The three pointers a, b, c point to the same object.
2) The object is readable from a to (but not including) c, i.e., c may point
just beyond the end of the sequence.
3) a <= b
4) b <= c
This predicate is an invariant for the standard loop pattern in which a
pointer is used to iterate over an object, stopping when the pointer points
one beyond the end of the sequence.
The benefit over using a<=b && b<=c is that ANSI-C's <= operator is
undefined when the two pointers related by <= do not point into the same
object.
0 commit comments