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))
foo(char * qb,char * into)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 
main()35 int main()
36 {
37   char *b = "123";
38   char out[4];
39   foo(b, out);
40   return 0;
41 }
42