blob: 741dbc270c38a680af20f4b399a91010050251bc [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O1" } */
static int __attribute__((noipa))
get_5 (void)
{
return 5;
}
static int __attribute__((noipa))
verify_5 (int v)
{
if (v != 5)
__builtin_abort ();
}
struct T
{
int w;
int a[4];
};
struct S
{
int v;
int x;
struct T t[2];
char alotofstuff[128];
};
volatile int vol;
void __attribute__((noipa))
consume_t (struct T t)
{
vol = t.a[0];
}
int __attribute__((noipa))
foo (int l1, int l2)
{
struct S s1, s2, s3;
int i, j;
s1.v = get_5 ();
for (i = 0; i < l1; i++)
{
for (j = 0; j < l2; j++)
s1.t[i].a[j] = get_5 ();
consume_t(s1.t[i]);
}
s2 = s1;
s3 = s2;
for (i = 0; i < l1; i++)
for (j = 0; j < l2; j++)
verify_5 (s3.t[i].a[j]);
}
int
main (int argc, char *argv[])
{
foo (2, 4);
return 0;
}