1 /* For PR rtl-optimization/27735  */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -funswitch-loops -fdump-tree-unswitch-details" } */
4 
5 void set_color(void);
xml_colorize_line(unsigned int * p,int state)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" } } */
37