1  /* { dg-do link } */
       2  /* { dg-options "-O2 -fno-tree-switch-conversion" } */
       3  
       4  /* Based on f3 from vrp63.c, but with switch instead of if-chain.  This test
       5     tests the propagation of an anti-range in a switch statement.  */
       6  
       7  extern void link_error (void);
       8  
       9  void
      10  f3 (int s)
      11  {
      12    if (s >> 3 == -2)
      13      /* s in range [ -16, -9].  */
      14      ;
      15    else
      16      {
      17        /* s in range ~[-16, -9], so none of the case labels can be taken.  */
      18        switch (s)
      19  	{
      20  	case -16:
      21  	case -12:
      22  	case -9:
      23  	  link_error ();
      24  	  break;
      25  	default:
      26  	  break;
      27  	}
      28      }
      29  }
      30  
      31  int
      32  main ()
      33  {
      34    return 0;
      35  }