62 lines
925 B
C
62 lines
925 B
C
/* { 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,l,m,n;
|
|
i=j=k=0;
|
|
for (i=0; i < global; i++)
|
|
for (j=0; j < i; j++)
|
|
for (k=0; k < j; k++)
|
|
for (l=0; l < k; l++)
|
|
for (m=0; m < l; m++)
|
|
for (n=0; n < m; n++)
|
|
global2 = k;
|
|
if (check_int ((int *) &a, __alignof__(a)) != a)
|
|
abort ();
|
|
throw 0;
|
|
}
|
|
|
|
void foo()
|
|
{
|
|
bar();
|
|
}
|
|
|
|
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;
|
|
foo();
|
|
}
|
|
catch (...)
|
|
{
|
|
}
|
|
ll = i+j+k+l+m+n;
|
|
if (ll != 15)
|
|
{
|
|
#ifdef DEBUG
|
|
printf("FAIL: sum %d != 15\n", ll);
|
|
#endif
|
|
abort();
|
|
}
|
|
return 0;
|
|
}
|