38 lines
719 B
C
38 lines
719 B
C
/* PR c/83844 */
|
|
/* { dg-do compile { target int32plus } } */
|
|
/* { dg-options "-O0 -Wall" } */
|
|
/* { dg-require-effective-target alloca } */
|
|
|
|
typedef unsigned long long __u64 __attribute__((aligned(4),warn_if_not_aligned(8)));
|
|
void bar (void *, void *, void *);
|
|
|
|
void
|
|
foo (int n)
|
|
{
|
|
struct A
|
|
{
|
|
int i1;
|
|
int i2;
|
|
int i3[n];
|
|
__u64 x; /* { dg-warning "in 'struct A' may not be aligned to 8" } */
|
|
} __attribute__((aligned (8)));
|
|
struct B
|
|
{
|
|
int i1;
|
|
int i2;
|
|
long long i3[n];
|
|
__u64 x;
|
|
} __attribute__((aligned (8)));
|
|
struct C
|
|
{
|
|
int i1;
|
|
int i2;
|
|
int i3[2 * n];
|
|
__u64 x;
|
|
} __attribute__((aligned (8)));
|
|
struct A a;
|
|
struct B b;
|
|
struct C c;
|
|
bar (&a, &b, &c);
|
|
}
|