1 /* { dg-do compile } */ 2 3 extern int baz (); 4 extern void bar (void); 5 extern void noret (void) __attribute__ ((__noreturn__)); 6 7 void fix_register(const char * name,int fixed,int call_used,int nregs)8fix_register (const char *name, int fixed, int call_used, int nregs) 9 { 10 int i; 11 int reg; 12 13 if ((reg = baz ()) >= 0) 14 { 15 for (i = reg; i < nregs; i++) 16 { 17 if ((i == 15 || i == 11) && (fixed == 0 || call_used == 0)) 18 { 19 switch (fixed) 20 { 21 case 0: 22 switch (call_used) 23 { 24 case 1: 25 bar (); 26 break; 27 default: 28 (noret ()); 29 } 30 case 1: 31 switch (call_used) 32 { 33 case 1: 34 break; 35 case 0: 36 default: 37 (noret ()); 38 } 39 break; 40 default: 41 (noret ()); 42 } 43 } 44 } 45 } 46 } 47