1 /* Test AAPCS layout (alignment) for callee.  */
2 
3 /* { dg-do run { target arm_eabi } } */
4 /* { dg-require-effective-target arm32 } */
5 /* { dg-options "-O2 -fno-inline" } */
6 
7 extern void abort (void);
8 
9 typedef __attribute__((aligned (8))) int alignedint;
10 
11 alignedint a = 11;
12 alignedint b = 13;
13 alignedint c = 17;
14 alignedint d = 19;
15 alignedint e = 23;
16 alignedint f = 29;
17 
18 void
foo(alignedint r0,alignedint r1,alignedint r2,alignedint r3,alignedint stack,alignedint stack4)19 foo (alignedint r0, alignedint r1, alignedint r2, alignedint r3,
20      alignedint stack, alignedint stack4)
21 {
22   if (r0 != a
23       || r1 != b
24       || r2 != c
25       || r3 != d
26       || stack != e
27       || stack4 !=f)
28     abort ();
29 }
30 
31 int
main(int argc,char ** argv)32 main (int argc, char **argv)
33 {
34   foo (a, b, c, d, e, f);
35   return 0;
36 }
37