blob: 83568c1209b9e261f102ca1a92cd8b1784aae2c0 [file] [log] [blame]
/* { dg-additional-options "-std=gnu17" } */
char *e ();
#define SET \
if (d > *b++) d |= a; \
if (b) b = e(b);
void
xxx(void)
{
int a, d;
char *b, *c;
while (1) {
while (1) {
while (1) {
if (a) {
switch (a) {
case 1:
while (1) {
SET
do {
SET
} while (1);
}
case 2:
while (1) {
if (d) {
do {
SET
} while (1);
}
else {
do {
SET
} while (1);
}
}
case 3:
while (1) {
if (d) {
do {
SET
} while (1);
}
else {
do {
SET
} while (1);
}
}
case 4:
while (1) {
if (d) {
do {
SET
} while (1);
}
else {
do {
SET
} while (1);
}
}
}
}
else {
switch (a) {
case 2:
while (1) {
if (d) {
do {
SET
} while (1);
}
else {
do {
SET
} while (1);
}
}
case 3:
while (1) {
if (d) {
do {
SET
} while (1);
}
else {
do {
SET
} while (1);
}
}
case 4:
while (1) {
if (d) {
do {
SET
} while (1);
}
else {
do {
SET
} while (1);
}
}
}
}
}
}
}
}