1 | // Header for PCH test stmts.c |
2 | |
3 | void f0(int x) { |
4 | // NullStmt |
5 | ; |
6 | // IfStmt |
7 | if (x) { |
8 | } else if (x + 1) { |
9 | } |
10 | |
11 | switch (x) { |
12 | case 0: |
13 | x = 17; |
14 | break; |
15 | |
16 | case 1: |
17 | break; |
18 | |
19 | default: |
20 | switch (x >> 1) { |
21 | case 7: |
22 | // fall through |
23 | case 9: |
24 | break; |
25 | } |
26 | x += 2; |
27 | break; |
28 | } |
29 | |
30 | while (x > 20) { |
31 | if (x > 30) { |
32 | --x; |
33 | continue; |
34 | } else if (x < 5) |
35 | break; |
36 | else |
37 | goto done; |
38 | } |
39 | |
40 | do { |
41 | x++; |
42 | } while (x < 10); |
43 | |
44 | almost_done: |
45 | for (int y = x; y < 20; ++y) { |
46 | if (x + y == 12) |
47 | return; |
48 | else if (x - y == 7) |
49 | goto almost_done; |
50 | } |
51 | |
52 | done: |
53 | x = x + 2; |
54 | |
55 | int z = x, *y, j = 5; |
56 | } |
57 | |
58 | int f1(int x) { |
59 | switch (x) { |
60 | case 17: |
61 | return 12; |
62 | |
63 | default: |
64 | break; |
65 | } |
66 | |
67 | // variable-length array |
68 | int array[x * 17 + 3]; |
69 | |
70 | return x*2; |
71 | } |
72 | |
73 | const char* what_is_my_name(void) { return __func__; } |
74 | |
75 | int computed_goto(int x) { |
76 | start: |
77 | x = x << 1; |
78 | void *location = &&start; |
79 | |
80 | if (x > 17) |
81 | location = &&done; |
82 | |
83 | while (x > 12) { |
84 | --x; |
85 | if (x == 15) |
86 | goto *location; |
87 | } |
88 | |
89 | done: |
90 | return 5; |
91 | } |
92 | |
93 | #define maxint(a,b) ({int _a = (a), _b = (b); _a > _b ? _a : _b; }) |
94 | int weird_max(int x, int y) { |
95 | return maxint(++x, --y); |
96 | } |
97 | |