1/* { dg-do run } */
2/* { dg-skip-if "requires alloca" { ! alloca } { "-O0" } { "" } } */
3
4extern void abort (void);
5int
6main (int argc, char **argv)
7{
8  int size = 10;
9  typedef struct
10    {
11      char val[size];
12    }
13  block;
14  block a, b;
15  block __attribute__((noinline))
16  retframe_block ()
17    {
18      return *(block *) &b;
19    }
20  b.val[0] = 1;
21  b.val[9] = 2;
22  a=retframe_block ();
23  if (a.val[0] != 1
24      || a.val[9] != 2)
25    abort ();
26  return 0;
27}
28