2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / builtins / string-asm-2-lib.c
blob16369a21794bb4c7bdd467b4710a1397dcb10061
1 extern int inside_main;
2 typedef __SIZE_TYPE__ size_t;
4 #define TEST_ABORT if (inside_main) abort()
6 void *
7 my_memcpy (void *d, const void *s, size_t n)
9 char *dst = (char *) d;
10 const char *src = (const char *) s;
11 while (n--)
12 *dst++ = *src++;
13 return (char *) d;
16 void
17 my_bcopy (const void *s, void *d, size_t n)
19 char *dst = (char *) d;
20 const char *src = (const char *) s;
21 if (src >= dst)
22 while (n--)
23 *dst++ = *src++;
24 else
26 dst += n;
27 src += n;
28 while (n--)
29 *--dst = *--src;
33 void *
34 my_memset (void *d, int c, size_t n)
36 char *dst = (char *) d;
37 while (n--)
38 *dst++ = c;
39 return (char *) d;
42 void
43 my_bzero (void *d, size_t n)
45 char *dst = (char *) d;
46 while (n--)
47 *dst++ = '\0';
50 void *
51 memcpy (void *d, const void *s, size_t n)
53 TEST_ABORT;
54 return my_memcpy (d, s, n);
57 void
58 bcopy (const void *s, void *d, size_t n)
60 TEST_ABORT;
61 my_bcopy (s, d, n);
64 void *
65 memset (void *d, int c, size_t n)
67 TEST_ABORT;
68 return my_memset (d, c, n);
71 void
72 bzero (void *d, size_t n)
74 TEST_ABORT;
75 my_bzero (d, n);