/* { dg-do run { target powerpc*-*-linux* powerpc*-*-eabi* powerpc-*-rtems* } } */
/* { dg-options {} } */

/* Test stack pointer alignment against variable alloca.  */
/* Inspired by PR libgcj/10610.  */
/* Origin: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.  */

extern void abort (void);
extern void exit (int);

register unsigned long sp __asm__ ("r1");

void g (int * val __attribute__ ((unused)))
{
  if (sp & 0xf)
    abort ();
}

void f (int val)
{
  int *val1 = __builtin_alloca (val);

  g (val1);
  return;
}

int main (void)
{
  int i;

  for (i = 1; i < 32; i++)
    f (i);
  
  exit (0);
}
