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