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