2015-05-04 Sandra Loosemore <sandra@codesourcery.com>
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / pr56689.c
blob719f528c2c04d034d8b7a00d28adfbed57dad2e4
1 /* { dg-do compile } */
3 extern int baz ();
4 extern void bar (void);
5 extern void noret (void) __attribute__ ((__noreturn__));
7 void
8 fix_register (const char *name, int fixed, int call_used, int nregs)
10 int i;
11 int reg;
13 if ((reg = baz ()) >= 0)
15 for (i = reg; i < nregs; i++)
17 if ((i == 15 || i == 11) && (fixed == 0 || call_used == 0))
19 switch (fixed)
21 case 0:
22 switch (call_used)
24 case 1:
25 bar ();
26 break;
27 default:
28 (noret ());
30 case 1:
31 switch (call_used)
33 case 1:
34 break;
35 case 0:
36 default:
37 (noret ());
39 break;
40 default:
41 (noret ());