Updated predicate xLIST_ITEM to jeep up with breaking VF change.

VeriFast now ensures that no uninitialised values are read. `x |-> _` is interpreted as "uninitialised", `x |-> ?v` is interpreted as "initialised".
This commit is contained in:
Tobias Reinhard 2022-11-22 07:14:21 -05:00
parent 35aef80072
commit 2fd6bcc2d7

View file

@ -128,6 +128,26 @@
} List_t;
#endif /* VERIFAST_SINGLE_CORE */
#ifndef VERIFAST_SINGLE_CORE
/* Reason for deletion:
* Breaking change in VeriFast. VeriFast now ensures that no uninitialised
* values are read. `x |-> _` is interpreted as "uninitialised",
* `x |-> ?v` is interpreted as "initialised".
*/
/*@
predicate xLIST_ITEM(
struct xLIST_ITEM *n,
TickType_t xItemValue,
struct xLIST_ITEM *pxNext,
struct xLIST_ITEM *pxPrevious,
struct xLIST *pxContainer;) =
n->xItemValue |-> xItemValue &*&
n->pxNext |-> pxNext &*&
n->pxPrevious |-> pxPrevious &*&
n->pvOwner |-> ?gOwner &*&
n->pxContainer |-> pxContainer;
@*/
#else
/*@
predicate xLIST_ITEM(
struct xLIST_ITEM *n,
@ -141,6 +161,7 @@ predicate xLIST_ITEM(
n->pvOwner |-> _ &*&
n->pxContainer |-> pxContainer;
@*/
#endif /* VERIFAST_SINGLE_CORE */
/* Ferreira et al. (STTT'14) doubly-linked list segment (DLS). */
/*@