OSDN Git Service

PR debug/54694
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / pr53174.c
1 /* PR debug/53174 */
2 /* { dg-do compile } */
3 /* { dg-options "-Ofast -g" } */
4
5 int w, h;
6
7 void
8 bar (float (*x)[4], int y, int z)
9 {
10   int a, b, c, d, e, f, g;
11
12   a = 2;
13   b = 2;
14   c = 274;
15   d = 274;
16   if (!z)
17     a = 12;
18   if (!y)
19     b = 12;
20   if (z + 266 >= h - 2)
21     c = 8 + h - z;
22   if (y + 266 >= w - 2)
23     d = 8 + w - y;
24   for (e = a; e < c; e++)
25     for (f = b, g = e * 276 + f; f < d; f++, g++)
26       {
27         float (*h)[4] = x + (g - 277);
28         float k = (*h)[0];
29         float l = (*h)[1];
30         float m = (*h)[2];
31         h++;
32         k += (*h)[0];
33         l += (*h)[1];
34         m += (*h)[2];
35         h++;
36         k += (*h)[0];
37         l += (*h)[1];
38         m += (*h)[2];
39         h += 274;
40         k += (*h)[0];
41         l += (*h)[1];
42         m += (*h)[2];
43         h += 2;
44         k += (*h)[0];
45         l += (*h)[1];
46         m += (*h)[2];
47         h += 274;
48         k += (*h)[0];
49         l += (*h)[1];
50         m += (*h)[2];
51         h++;
52         k += (*h)[0];
53         l += (*h)[1];
54         m += (*h)[2];
55         h++;
56         k += (*h)[0];
57         l += (*h)[1];
58         m += (*h)[2];
59         k *= 0.125f;
60         l *= 0.125f;
61         m *= 0.125f;
62         k = k + (x[g][1] - l);
63         m = m + (x[g][1] - l);
64         x[g][0] = k;
65         x[g][2] = m;
66       }
67 }