1/* Test that stack alignment is preserved with pending_stack_adjust
2   with stdcall functions.  */
3
4/* { dg-do run } */
5/* { dg-require-effective-target ilp32 } */
6/* { dg-options -mpreferred-stack-boundary=4 } */
7
8void __attribute__((stdcall)) foo(int a, int b, int c);
9
10extern void abort (void);
11extern void exit (int);
12
13int
14main ()
15{
16  foo(1, 2, 3);
17  foo(1, 2, 3);
18  exit (0);
19}
20
21void __attribute__((stdcall))
22foo(int a, int b, int c)
23{
24  static int last_align = -1;
25  int dummy, align = (int)&dummy & 15;
26  if (last_align < 0)
27    last_align = align;
28  else if (align != last_align)
29    abort ();
30}
31