55 lines
1.0 KiB
C
55 lines
1.0 KiB
C
/* { dg-do compile } */
|
|
/* { dg-options "-O1" } */
|
|
|
|
/* This used to result in an ICE. */
|
|
|
|
_Decimal64 y[258][258];
|
|
_Decimal64 dd[258][258];
|
|
_Decimal64 ry[258][258];
|
|
_Decimal64
|
|
foo (void)
|
|
{
|
|
int i;
|
|
int j;
|
|
int m;
|
|
int im;
|
|
int jm;
|
|
int ip;
|
|
int jp;
|
|
int i2m;
|
|
int i1p;
|
|
_Decimal64 a;
|
|
_Decimal64 b;
|
|
_Decimal64 c;
|
|
_Decimal64 qi;
|
|
_Decimal64 qj;
|
|
_Decimal64 xx;
|
|
_Decimal64 yx;
|
|
_Decimal64 xy;
|
|
_Decimal64 yy;
|
|
_Decimal64 rel;
|
|
_Decimal64 qxx;
|
|
_Decimal64 qyy;
|
|
_Decimal64 qxy;
|
|
do
|
|
{
|
|
jp = j + 1;
|
|
for (i = i1p; i <= i2m; i++)
|
|
{
|
|
ip = i + 1;
|
|
yx = y[ip][j] - y[im][j];
|
|
yy = y[i][jp] - y[i][jm];
|
|
a = 0.25dd * (xy * xy + yy * yy);
|
|
b = 0.25dd * (xx * xx + yx * yx);
|
|
c = 0.125dd * (xx * xy + yx * yy);
|
|
qj = 0.0dd;
|
|
dd[i][m] = b + a * rel + b;
|
|
qxx = y[ip][j] - 2.0dd * y[i][j] + y[im][j];
|
|
qyy = y[i][jp] - 2.0dd * y[i][j] + y[i][jm];
|
|
qxy = y[ip][jp] - y[ip][jm] - y[im][jp] + y[im][jm];
|
|
ry[i][m] = a * qxx + b * qyy - c * qxy + yx * qi + yy * qj;
|
|
}
|
|
}
|
|
while (1);
|
|
}
|