github.com/cznic/cc@v0.0.0-20181122101902-d673e9b70d4d/testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/memmove.c (about) 1 extern void abort (void); 2 extern int inside_main; 3 4 __attribute__ ((__noinline__)) 5 void * 6 memmove (void *dst, const void *src, __SIZE_TYPE__ n) 7 { 8 char *dstp; 9 const char *srcp; 10 11 #ifdef __OPTIMIZE__ 12 if (inside_main) 13 abort (); 14 #endif 15 16 srcp = src; 17 dstp = dst; 18 if (srcp < dstp) 19 while (n-- != 0) 20 dstp[n] = srcp[n]; 21 else 22 while (n-- != 0) 23 *dstp++ = *srcp++; 24 25 return dst; 26 } 27 28 void 29 bcopy (const void *src, void *dst, __SIZE_TYPE__ n) 30 { 31 memmove (dst, src, n); 32 }