1 void test (char *s1
, int x
);
2 void test3 (int, char *s1
);
3 void test2 (/*@only@*/ char *s1
, int x
);
4 char *copystring (char *s
);
6 int f (/*@only@*/ char *name
) /*@modifies *name;@*/
8 test (name
, f(name
)); /* 1. Variable name used after being released */
9 test3 (f(name
), name
); /* 2. Variable name used after being released */
10 test2 (copystring(name
), f(name
)); /* 3. Argument 2 modifies *name, used by ... */