1 /* { dg-do run } */ 2 3 #include "check.h" 4 5 #ifndef ALIGNMENT 6 #define ALIGNMENT 64 7 #endif 8 9 typedef int t_align __attribute__((aligned(ALIGNMENT))); 10 11 12 int global, global2; 13 void bar() 14 { 15 volatile t_align a = 1; 16 int i,j,k; 17 i=j=k=0; 18 for (i=0; i < global; i++) 19 for (j=0; j < i; j++) 20 { 21 global2 = k; 22 throw 0; 23 } 24 if (check_int ((int *) &a, __alignof__(a)) != a) 25 abort (); 26 } 27 28 int main() 29 { 30 int ll = 1; 31 int i = 0,j = 1,k = 2,l = 3,m = 4,n = 5; 32 try { 33 for (; i < global; i++) 34 for (; j < i; j++) 35 for (; k < j; k++) 36 for (; l < k; l++) 37 for (; m < l; m++) 38 for (; n < m; n++) 39 global2 = k; 40 bar (); 41 } 42 catch (...) 43 { 44 } 45 ll = i+j+k+l+m+n; 46 if (ll != 15) 47 { 48 #ifdef DEBUG 49 printf("FAIL: sum %d != 15\n", ll); 50 #endif 51 abort(); 52 } 53 return 0; 54 } 55