1 /* PR c/83844 */
2 /* { dg-do compile { target int32plus } } */
3 /* { dg-options "-O0 -Wall" } */
4 /* { dg-require-effective-target alloca } */
5
6 typedef unsigned long long __u64 __attribute__((aligned(4),warn_if_not_aligned(8)));
7 void bar (void *, void *, void *);
8
9 void
10 foo (int n)
11 {
12 struct A
13 {
14 int i1;
15 int i2;
16 int i3[n];
17 __u64 x; /* { dg-warning "in 'struct A' may not be aligned to 8" } */
18 } __attribute__((aligned (8)));
19 struct B
20 {
21 int i1;
22 int i2;
23 long long i3[n];
24 __u64 x;
25 } __attribute__((aligned (8)));
26 struct C
27 {
28 int i1;
29 int i2;
30 int i3[2 * n];
31 __u64 x;
32 } __attribute__((aligned (8)));
33 struct A a;
34 struct B b;
35 struct C c;
36 bar (&a, &b, &c);
37 }