| 206 | | * could we use Frama-C notation `p+(e1..e2)` for example? |
| 207 | | * are there conversions between pointers and mems? |
| 208 | | |
| | 206 | * a left-hand-side expression, when used in certain contexts, is automatically converted to `$mem`. The contexts are: arguments to the built-in functions `$access`, `$read`, and `$write` described below, or occurrence in the list of an `$assigns` clause |
| | 207 | * `a[dom]`, where `a` is an expression of array type and `dom` is an expression of `$domain` type. The dimension of the array must match the dimension of the domain. This represents all memory units which are the cells in the array indexed by a tuple in `dom`. |
| | 208 | * `$region(ptr)`, where `ptr` is an expression with a pointer type. This represents the set of all memory units reachable from `ptr`, including the memory unit pointed to by `ptr` itself. |
| | 209 | * `mem1+mem2`, where `mem1` and `mem2` are expressions of type `$memory`. This is the union of the two sets. **Problem this is ambiguous with numeric +, as in x+y.** |
| | 210 | * **could we use Frama-C notation `p+(e1..e2)` for example?** |
| | 211 | * **are there conversions between pointers and mems?** |