1/* { dg-do compile } */
2
3extern int baz ();
4extern void bar (void);
5extern void noret (void)   __attribute__ ((__noreturn__));
6
7void
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