1  /* For PR rtl-optimization/27735  */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -funswitch-loops -fdump-tree-unswitch-all -fno-finite-loops" } */
       4  
       5  void set_color(void);
       6  void xml_colorize_line(unsigned int *p, int state)
       7  {
       8    int c;
       9    switch(state) 
      10      {
      11      case 1:
      12        goto parse_tag;
      13      case 2:
      14        goto parse_comment;
      15      }
      16  
      17    for(;;) 
      18      {
      19        c = *p;  
      20        if (c == '<' && state == 0) 
      21  	{
      22  parse_comment: ;
      23  	  while (*p != '\n') 
      24  	    state = 3;
      25  parse_tag: ;
      26  	  while (*p != '\n') 
      27  	    state = 0;
      28  	  set_color();
      29  	}
      30        else
      31  	p++;
      32      }
      33  }
      34  
      35  /* Test that we actually unswitched something.  */
      36  /* { dg-final { scan-tree-dump "unswitching loop" "unswitch" } } */