source: CIVL/examples/mem/readset/pointer2.cvl@ a24d685

1.23 2.0 main test-branch
Last change on this file since a24d685 was 4501911, checked in by Ziqing Luo <ziqing@…>, 7 years ago

add new examples to CIVL

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5225 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 461 bytes
Line 
1#include<mem.cvh>
2int main() {
3 int x,y,z;
4 int * p, * q, **pp;
5
6 x = 0, y = 0, z = 0;
7 p = &x; q = &y;
8 pp = &p;
9 $read_set_push();
10 int a = *q + **pp;
11
12 $mem m = $read_set_pop();
13 $mem oracle = ($mem)&x;
14
15 oracle = $mem_union(oracle, ($mem)&y);
16 oracle = $mem_union(oracle, ($mem)&p);
17 oracle = $mem_union(oracle, ($mem)&q);
18 oracle = $mem_union(oracle, ($mem)&pp);
19 oracle = $mem_union(oracle, ($mem)&a);
20 $assert($mem_equals(m, oracle));
21}
Note: See TracBrowser for help on using the repository browser.