source: CIVL/mods/dev.civl.abc/examples/contract/validPointers.c

main
Last change on this file was aad342c, checked in by Stephen Siegel <siegel@…>, 3 years ago

Performing huge refactor to incorporate ABC, GMC, and SARL into CIVL repo and use Java modules.

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

  • Property mode set to 100644
File size: 336 bytes
Line 
1#pragma CIVL ACSL
2/*@
3 @ requires x >= 0;
4 @ ensures \result == x + 1;
5 @
6*/
7int add(int x)
8{
9 return x + 1;
10}
11
12/*@ requires \valid(x + (0 .. 2));
13 @ ensures *x == \result - 1;
14 @ ensures \valid(x);
15 @*/
16int incr(int * x)
17{
18 int ret = *x;
19
20 ret = add(ret);
21 return ret;
22}
23
24int main() {
25 incr((void *)-1);
26 return 0;
27}
Note: See TracBrowser for help on using the repository browser.