From 5d1a8ec197b54308a84020d7772adb00cf8f0d43 Mon Sep 17 00:00:00 2001 From: Olaf Barthel Date: Fri, 30 Jul 2004 09:25:16 +0000 Subject: [PATCH] - Modified so that it no longer causes warnings with GCC 2.95.x if -fno-builtin is not used. git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14694 87f5fb63-7c3d-0410-a384-fd976d0f7a62 --- library/include/string.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/library/include/string.h b/library/include/string.h index 036931a..76a403e 100644 --- a/library/include/string.h +++ b/library/include/string.h @@ -1,5 +1,5 @@ /* - * $Id: string.h,v 1.1.1.1 2004-07-26 16:32:55 obarthel Exp $ + * $Id: string.h,v 1.2 2004-07-30 09:25:16 obarthel Exp $ * * :ts=4 * @@ -71,11 +71,21 @@ extern size_t strxfrm(char *dest, const char *src, size_t len); /****************************************************************************/ +extern void *memmove(void *dest, const void * src, size_t len); extern void *memchr(const void * ptr, int val, size_t len); + +/* This is ugly: GCC 2.95.x assumes that 'unsigned long' is used in the built-in + memcmp/memcpy/memset functions instead of 'size_t'. This can produce warnings + where none are necessary. */ +#if defined(__GNUC__) && (__GNUC__ < 3) +extern int memcmp(const void *ptr1, const void *ptr2, unsigned long len); +extern void *memcpy(void *dest, const void *src, unsigned long len); +extern void *memset(void *ptr, int val, unsigned long len); +#else extern int memcmp(const void *ptr1, const void *ptr2, size_t len); extern void *memcpy(void *dest, const void *src, size_t len); -extern void *memmove(void *dest, const void * src, size_t len); extern void *memset(void *ptr, int val, size_t len); +#endif /* __GNUC__ && __GNUC__ < 3 */ /****************************************************************************/