main
| Line | |
|---|
| 1 | #include<mem.cvh>
|
|---|
| 2 |
|
|---|
| 3 | int a[10];
|
|---|
| 4 |
|
|---|
| 5 | int main() {
|
|---|
| 6 | $mem m = &a[0];
|
|---|
| 7 |
|
|---|
| 8 | m = $mem_union_widening(m, &a[1]);
|
|---|
| 9 | // only if the two indices connect, the default widening operator will
|
|---|
| 10 | // combine them precisely:
|
|---|
| 11 | $assert($mem_contains(m, &a[0 .. 1]));
|
|---|
| 12 | $assert(!$mem_contains(m, &a[2]));
|
|---|
| 13 |
|
|---|
| 14 | // otherwise, the default widening operator will result in the whole
|
|---|
| 15 | // array:
|
|---|
| 16 | m = $mem_union_widening(m, &a[3]);
|
|---|
| 17 | $assert($mem_contains(m, &a));
|
|---|
| 18 |
|
|---|
| 19 | m = &a[0 .. 2];
|
|---|
| 20 | m = $mem_union_widening(m, &a[1]);
|
|---|
| 21 | $assert($mem_contains(m, &a[0 .. 2]));
|
|---|
| 22 | $assert(!$mem_contains(m, &a));
|
|---|
| 23 | }
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.