Remove outermost loop parameter.
[official-gcc/graphite-test-results.git] / gcc / testsuite / g++.dg / torture / stackalign / throw-1.C
blobb1d2e2789535a0700dc73ba1d52859ccfd2b958b
1 /* { dg-do run } */
3 #include "check.h"
5 #ifndef ALIGNMENT
6 #define ALIGNMENT       64
7 #endif
9 typedef int t_align __attribute__((aligned(ALIGNMENT)));
12 int global, global2;
13 void bar()
15         volatile t_align a = 1;
16         int i,j,k,l,m,n;
17         i=j=k=0;
18         for (i=0; i < global; i++)
19           for (j=0; j < i; j++)
20           for (k=0; k < j; k++)
21           for (l=0; l < k; l++)
22           for (m=0; m < l; m++)
23           for (n=0; n < m; n++)
24                 global2 = k;
25         if (check_int ((int *) &a,  __alignof__(a)) != a)
26           abort ();
27         throw 0;
30 void foo()
32         bar();
35 int main()
37         int ll = 1;
38         int i = 0,j = 1,k = 2,l = 3,m = 4,n = 5;
39         try {
40           for (; i < global; i++)
41           for (; j < i; j++)
42           for (; k < j; k++)
43           for (; l < k; l++)
44           for (; m < l; m++)
45           for (; n < m; n++)
46                 global2 = k;
47           foo();
48         }
49         catch (...)
50         {
51         }
52         ll = i+j+k+l+m+n;
53         if (ll != 15)
54         {
55 #ifdef DEBUG
56                 printf("FAIL: sum %d != 15\n", ll);
57 #endif
58                 abort();
59         }
60         return 0;