1 /* { dg-do run } */
2
3 #include <stdio.h>
4 #include <stdlib.h>
5
6 #define GENERAL 1
7 #define BRACKETS 2
8 #define QUOTES 3
9
10 void __attribute__((noinline,noclone))
11 foo(char *qb, char* into)
12 {
13 int state = QUOTES;
14 int save_state = BRACKETS;
15
16 while (qb)
17 {
18 switch (state)
19 {
20 case BRACKETS:
21 exit(0);
22 case GENERAL:
23 abort ();
24 case QUOTES:
25 state = save_state;
26 save_state = GENERAL;
27 break;
28 default: ;
29 }
30 printf("State %d btw GENERAL %d\n", state, GENERAL);
31 }
32 abort ();
33 }
34
35 int main()
36 {
37 char *b = "123";
38 char out[4];
39 foo(b, out);
40 return 0;
41 }