Add assertions.
authorJim Meyering <jim@meyering.net>
Fri, 4 Oct 1996 13:42:20 +0000 (13:42 +0000)
committerJim Meyering <jim@meyering.net>
Fri, 4 Oct 1996 13:42:20 +0000 (13:42 +0000)
lib/memcpy.c

index dba7d56..aec71e3 100644 (file)
@@ -2,6 +2,15 @@
    if the source overlaps with the destination.
    Return DESTADDR. */
 
+#include <assert.h>
+
+/* FIXME: uncomment the following for releases.  */
+#define NDEBUG 1
+
+#ifndef ABS
+# define ABS(x) ((x) < 0 ? (-(x)) : (x))
+#endif
+
 char *
 memcpy (destaddr, srcaddr, len)
      char *destaddr;
@@ -10,6 +19,10 @@ memcpy (destaddr, srcaddr, len)
 {
   char *dest = destaddr;
 
+  assert (len >= 0);
+  /* Make sure they don't overlap.  */
+  assert (ABS (destaddr - srcaddr) >= len);
+
   while (len-- > 0)
     *destaddr++ = *srcaddr++;
   return dest;