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