modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-lib.c (about)

     1  extern void abort (void);
     2  
     3  void *
     4  memcpy (void *dst, const void *src, __SIZE_TYPE__ n)
     5  {
     6    const char *srcp;
     7    char *dstp;
     8  
     9    srcp = src;
    10    dstp = dst;
    11  
    12    if (dst < src)
    13      {
    14        if (dst + n > src)
    15  	abort ();
    16      }
    17    else
    18      {
    19        if (src + n > dst)
    20  	abort ();
    21      }
    22  
    23    while (n-- != 0)
    24      *dstp++ = *srcp++;
    25  
    26    return dst;
    27  }