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