1/* { dg-do compile } */ 2 3typedef __SIZE_TYPE__ size_t; 4 5extern "C" { 6 extern __inline __attribute__ ((__always_inline__)) 7 __attribute__ ((__gnu_inline__, __artificial__)) void * 8 memcpy (void *__restrict __dest, __const void *__restrict __src, 9 size_t __len) throw () 10 { 11 return __builtin___memcpy_chk (__dest, __src, __len, 12 __builtin_object_size (__dest, 0)); 13 } 14} 15 16typedef char TCODE[20]; 17typedef TCODE TCODE_ARRAY[5]; 18typedef struct PARAM 19{ 20 TCODE_ARRAY tcode; 21} PARAM; 22 23static void foo (void* p) 24{ 25 char buffer[4+sizeof(PARAM)]; 26 PARAM *param = (PARAM *)(buffer + 4); 27 int i; 28 29 for (i=0; i < 5; i++) 30 { 31 memcpy( param->tcode[i], p, 20 ); 32 } 33} 34 35void bar (void* p) 36{ 37 foo (p); 38} 39