1 /* { dg-do run } */ 2 /* { dg-skip-if "requires alloca" { ! alloca } { "-O0" } { "" } } */ 3 4 extern void abort (void); 5 int main(int argc,char ** argv)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