6 int f(int *a
, int b
, int **c
)
11 *x
= 3; /* 1. modifies *a */
14 *y
= 4; /* 2. modifies *a */
16 globp
= a
; /* 3. modifies *globp */
17 if (*x
== 3) return 3; /* 4. returns aliasing globp */
21 globp
= z
; /* 5, 6. z use before def, modifies globp */
25 *globp
= 4; /* 7, 8. modifies *a, *globp */
28 *x
= 7; /* 9, 10. modifies *globp, *a */
31 *x
= 4; /* 11. modifies glob */
38 *x
= 4; /* 12. modifies **c */
40 *a
= 4; /* 13. modifies **c (but not *a) */
41 *globp
= 3; /* 14, 15. modifies *globp, modifies *a */
42 return 4; /* 16. returns with globp aliasing a */
49 mut_mod (a
); /* 17. modifies a */
51 mut_mod (a
); /* 18. modifies b */
53 mut_mod (b
); /* okay */
55 return 3; /* 19. locally allocated storage c not released */