merge from gcc
authorDJ Delorie <dj@redhat.com>
Sun, 3 Apr 2005 04:41:10 +0000 (04:41 +0000)
committerDJ Delorie <dj@redhat.com>
Sun, 3 Apr 2005 04:41:10 +0000 (04:41 +0000)
libiberty/ChangeLog
libiberty/bcmp.c
libiberty/bcopy.c
libiberty/bzero.c

index 3099668..6e9bf11 100644 (file)
@@ -1,5 +1,9 @@
 2005-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
+       * bcmp.c: Fix warnings and implement using memcmp.
+       * bcopy.c: Fix warnings.
+       * bzero.c: Fix warnings and implement using memset.
+
        * configure.ac (ac_libiberty_warn_cflags): Add -Wwrite-strings
        -Wstrict-prototypes.
        * configure, config.in: Regenerate.
index 1bd2816..c639f98 100644 (file)
@@ -15,20 +15,13 @@ result mean @var{x} sorts before @var{y}).
 
 */
 
+#include <stddef.h>
+
+extern int memcmp(const void *, const void *, size_t);
 
 int
-bcmp (char *from, char *to, int count)
+bcmp (const void *s1, const void *s2, size_t count)
 {
-  int rtnval = 0;
-
-  while (count-- > 0)
-    {
-      if (*from++ != *to++)
-       {
-         rtnval = 1;
-         break;
-       }
-    }
-  return (rtnval);
+  return memcmp (s1, s2, count);
 }
 
index 0944247..1e2eca9 100644 (file)
@@ -9,17 +9,23 @@ Copies @var{length} bytes from memory region @var{in} to region
 
 */
 
+#include <stddef.h>
+
 void
-bcopy (register char *src, register char *dest, int len)
+bcopy (const void *src, void *dest, size_t len)
 {
   if (dest < src)
-    while (len--)
-      *dest++ = *src++;
+    {
+      const char *firsts = src;
+      char *firstd = dest;
+      while (len--)
+       *firstd++ = *firsts++;
+    }
   else
     {
-      char *lasts = src + (len-1);
-      char *lastd = dest + (len-1);
+      const char *lasts = (const char *)src + (len-1);
+      char *lastd = (char *)dest + (len-1);
       while (len--)
-        *(char *)lastd-- = *(char *)lasts--;
+        *lastd-- = *lasts--;
     }
 }
index 1f52d2d..44ad73d 100644 (file)
@@ -12,12 +12,12 @@ is deprecated in favor of @code{memset}.
 
 */
 
+#include <stddef.h>
+
+extern void *memset(void *, int, size_t);
 
 void
-bzero (char *to, int count)
+bzero (void *to, size_t count)
 {
-  while (count-- > 0)
-    {
-      *to++ = 0;
-    }
+  memset (to, 0, count);
 }