File: argorder5.c

package info (click to toggle)
splint 3.1.2.dfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, squeeze, wheezy
  • size: 12,908 kB
  • ctags: 15,816
  • sloc: ansic: 150,306; yacc: 3,463; sh: 3,426; makefile: 2,218; lex: 412
file content (12 lines) | stat: -rw-r--r-- 428 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
void test (char *s1, int x);
void test3 (int, char *s1);
void test2 (/*@only@*/ char *s1, int x);
char *copystring (char *s);

int f (/*@only@*/ char *name) /*@modifies *name;@*/
{
  test (name, f(name));  /* 1. Variable name used after being released */
  test3 (f(name), name); /* 2. Variable name used after being released */
  test2 (copystring(name), f(name)); /* 3. Argument 2 modifies *name, used by ... */
  return 3;
}