39 lines
520 B
C
39 lines
520 B
C
/* PR rtl-optimization/104459 */
|
|
/* { dg-do compile } */
|
|
/* { dg-options "-O2 -funswitch-loops -fno-tree-dce -fcompare-debug -w" } */
|
|
|
|
void
|
|
foo (int x, int y)
|
|
{
|
|
unsigned int a;
|
|
|
|
for (;;)
|
|
{
|
|
short int *p = (short int *) &x;
|
|
unsigned int q = 0;
|
|
|
|
a /= 2;
|
|
if (a)
|
|
{
|
|
q -= y;
|
|
while (q)
|
|
;
|
|
}
|
|
|
|
if (x)
|
|
{
|
|
for (q = 0; q != 1; q += 2)
|
|
{
|
|
unsigned int n;
|
|
|
|
n = *p ? 0 : q;
|
|
y += n < 1;
|
|
|
|
n = a || *p;
|
|
if (n % x == 0)
|
|
y /= x;
|
|
}
|
|
}
|
|
}
|
|
}
|