Shih-wei Liao | f8fd82b | 2010-02-10 11:10:31 -0800 | [diff] [blame^] | 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 | } |