| /* { dg-do run } */ |
| |
| #include "check.h" |
| |
| #ifndef ALIGNMENT |
| #define ALIGNMENT 64 |
| #endif |
| |
| typedef int t_align __attribute__((aligned(ALIGNMENT))); |
| |
| |
| int global, global2; |
| void bar() |
| { |
| volatile t_align a = 1; |
| int i,j,k; |
| i=j=k=0; |
| for (i=0; i < global; i++) |
| for (j=0; j < i; j++) |
| { |
| global2 = k; |
| throw 0; |
| } |
| if (check_int ((int *) &a, __alignof__(a)) != a) |
| abort (); |
| } |
| |
| int main() |
| { |
| int ll = 1; |
| int i = 0,j = 1,k = 2,l = 3,m = 4,n = 5; |
| try { |
| for (; i < global; i++) |
| for (; j < i; j++) |
| for (; k < j; k++) |
| for (; l < k; l++) |
| for (; m < l; m++) |
| for (; n < m; n++) |
| global2 = k; |
| bar (); |
| } |
| catch (...) |
| { |
| } |
| ll = i+j+k+l+m+n; |
| if (ll != 15) |
| { |
| #ifdef DEBUG |
| printf("FAIL: sum %d != 15\n", ll); |
| #endif |
| abort(); |
| } |
| return 0; |
| } |