blob: dfa0a5eaaabd930a2bc59d79c928e912e0c2864c [file] [log] [blame]
/* { dg-do run } */
typedef struct {
unsigned long a;
unsigned long b;
unsigned long c;
} data_o;
typedef struct {
unsigned long c;
unsigned long gap1;
unsigned long b;
unsigned long gap2;
unsigned long a;
unsigned long x;
} data_i;
volatile unsigned long gx;
void __attribute__((noipa))
bar(unsigned long x)
{
gx = x;
}
void __attribute__((noipa))
foo(data_o *o, data_i *i)
{
o->a = i->a;
o->b = i->b;
o->c = i->c;
bar (i->x);
}
int main()
{
unsigned long data[9];
if ((__UINTPTR_TYPE__)data & 15 != 0)
foo ((data_o *)&data[6], (data_i *)data);
else
foo ((data_o *)data, (data_i *)&data[3]);
return 0;
}