| /* For PR tree-optimization/14784 */ |
| |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -funswitch-loops -fdump-tree-unswitch-details" } */ |
| |
| typedef struct bitmap_element_def |
| { |
| unsigned int indx; |
| } bitmap_element; |
| |
| typedef struct bitmap_head_def { |
| bitmap_element *first; |
| int using_obstack; |
| } bitmap_head; |
| typedef struct bitmap_head_def *bitmap; |
| |
| bitmap_element *bitmap_free; |
| |
| void foo (bitmap head, bitmap_element *elt) |
| { |
| while (1) |
| { |
| /* Alias analysis problems used to prevent us from recognizing |
| that this condition is invariant. */ |
| if (head->using_obstack) |
| bitmap_free = elt; |
| } |
| } |
| |
| |
| /* { dg-final { scan-tree-dump-times "unswitching" 1 "unswitch"} } */ |