]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.c-torture/execute/builtins/lib/memmove.c
03faf5e6262364e8ccda33d6d137d28af7deb889
[thirdparty/gcc.git] / gcc / testsuite / gcc.c-torture / execute / builtins / lib / memmove.c
1 extern void abort (void);
2 extern int inside_main;
3
4 void *
5 memmove (void *dst, const void *src, __SIZE_TYPE__ n)
6 {
7 char *dstp;
8 const char *srcp;
9
10 #ifdef __OPTIMIZE__
11 if (inside_main)
12 abort ();
13 #endif
14
15 srcp = src;
16 dstp = dst;
17 if (srcp < dstp)
18 while (n-- != 0)
19 dstp[n] = srcp[n];
20 else
21 while (n-- != 0)
22 *dstp++ = *srcp++;
23
24 return dst;
25 }
26
27 void
28 bcopy (const void *src, void *dst, __SIZE_TYPE__ n)
29 {
30 memmove (dst, src, n);
31 }