File: argorder4.c

package info (click to toggle)
splint 1%3A3.1.2%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 21,012 kB
  • ctags: 23,302
  • sloc: ansic: 150,869; yacc: 3,465; sh: 3,034; makefile: 2,160; lex: 412
file content (39 lines) | stat: -rw-r--r-- 483 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
int glob;

int add(int x, int y) { return (x + y); }

int f()
{
  return (glob);
}

int g()
{
  return (++glob);
}

int h()
{
  if (f() > 3)
    {
      return (f() + g()); /* bad --- order of evaluation matters! */
    }
  else
    {
      if (g() < 2)
	{
	  return (f() + (++glob)); /* bad! */
	}
      else
	{
	  return (g() + h()); /* bad (twice) */
	}
    }
  
  /* unreachable code here */

  return (add ((printf("hullo"), 3), (printf("goodbye"), 4))); /* bad (wrice) */
}