1 /* PR target/84763 */ 2 /* { dg-require-effective-target return_address } */ 3 4 extern void abort (void); 5 foo(unsigned int * data,unsigned int len)6void *foo (unsigned int *data, unsigned int len) 7 { 8 unsigned int local_data[128]; 9 10 if (len > 128) 11 abort (); 12 13 for (unsigned int i = 0; i < len; i++) 14 local_data[i] = data[i] + data[len - 1 - i] * 2; 15 16 void *ret = __builtin_frame_address (0); 17 18 for (unsigned int i = 0; i < len; i++) 19 ret = ret + local_data[i] % 8; 20 21 return ret; 22 } 23