Various minor fixes for compiler/linter (other then splint itself) warnings.
[splint-patched.git] / test / alias5.c
blob66df0a23eda96e6b7733deab3e7e0ec57b470bc6
1 typedef struct
3 /*@only@*/ int *x;
4 /*@only@*/ int *y;
5 } *pair;
7 # include "alias5.lh"
9 void incx1 (pair p)
11 pair p2 = p;
13 p2->x++; /* 1. Suspect modification of p->x through alias p2->x: p2->x++ */
16 void incx2 (pair p)
18 pair p2 = p;
20 p2 = pair_create ();
21 p2->x++;
22 } /* 2. Fresh storage p2 not released before return */
24 void incx3 (pair p)
26 pair p2 = pair_create ();
27 p2->x = p->x; /* 3. Only storage p2->x not released before assignment: p2->x = p->x */
28 *(p2->x) = 3; /* 4. Suspect modification of *(p->x) through alias *(p2->x): */
29 pair_free (p2);
30 } /* 5. Storage p->x reachable from parameter is kept (should be only) */