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