/* { dg-do run } */ | |
/* { dg-skip-if "requires alloca" { ! alloca } { "-O0" } { "" } } */ | |
extern void abort (void); | |
int | |
main (int argc, char **argv) | |
{ | |
int size = 10; | |
typedef struct | |
{ | |
char val[size]; | |
} | |
block; | |
block a, b; | |
block __attribute__((noinline)) | |
retframe_block () | |
{ | |
return *(block *) &b; | |
} | |
b.val[0] = 1; | |
b.val[9] = 2; | |
a=retframe_block (); | |
if (a.val[0] != 1 | |
|| a.val[9] != 2) | |
abort (); | |
return 0; | |
} |