| /* { 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); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } |