/* { 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;
}
