rt_gccstream/gcc/testsuite/gcc.dg/tree-ssa/pr22018.c

33 lines
419 B
C

/* { dg-do run } */
/* { dg-options -O2 } */
void abort (void);
void g(int);
void f(int l)
{
unsigned i;
for (i = 0; i < l; i++)
{
int y = i;
/* VRP was wrongfully computing z's range to be [0, 0] instead
of [-INF, 0]. */
int z = y*-32;
g(z);
}
}
void g(int i)
{
static int x = 0;
if (i == 0)
x ++;
if (x > 1)
abort ();
}
int main(void)
{
f(3);
return 0;
}