llvm-for-llvmta/tools/clang/test/PCH/stmts.h

97 lines
1.2 KiB
C
Raw Permalink Normal View History

2022-04-25 13:02:35 +02:00
// Header for PCH test stmts.c
void f0(int x) {
// NullStmt
;
// IfStmt
if (x) {
} else if (x + 1) {
}
switch (x) {
case 0:
x = 17;
break;
case 1:
break;
default:
switch (x >> 1) {
case 7:
// fall through
case 9:
break;
}
x += 2;
break;
}
while (x > 20) {
if (x > 30) {
--x;
continue;
} else if (x < 5)
break;
else
goto done;
}
do {
x++;
} while (x < 10);
almost_done:
for (int y = x; y < 20; ++y) {
if (x + y == 12)
return;
else if (x - y == 7)
goto almost_done;
}
done:
x = x + 2;
int z = x, *y, j = 5;
}
int f1(int x) {
switch (x) {
case 17:
return 12;
default:
break;
}
// variable-length array
int array[x * 17 + 3];
return x*2;
}
const char* what_is_my_name(void) { return __func__; }
int computed_goto(int x) {
start:
x = x << 1;
void *location = &&start;
if (x > 17)
location = &&done;
while (x > 12) {
--x;
if (x == 15)
goto *location;
}
done:
return 5;
}
#define maxint(a,b) ({int _a = (a), _b = (b); _a > _b ? _a : _b; })
int weird_max(int x, int y) {
return maxint(++x, --y);
}