32 lines
686 B
C
32 lines
686 B
C
/* 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"} } */
|