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)8 fix_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