summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/memcpy-1.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-08-19 07:34:40 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-08-19 07:34:40 +0000
commit912f9e817e0492ddc2a1c6ee4f41a427b43cf440 (patch)
tree335fa7ed68bccaabc938e142eabc167ac296372e /gcc/testsuite/gcc.c-torture/execute/memcpy-1.c
parentd3739bcdc296c9e9dbebea8ef89de4479bdfb4ad (diff)
downloadgcc-912f9e817e0492ddc2a1c6ee4f41a427b43cf440.tar.gz
Initial revision
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14840 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/memcpy-1.c')
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/memcpy-1.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/memcpy-1.c b/gcc/testsuite/gcc.c-torture/execute/memcpy-1.c
new file mode 100644
index 00000000000..684854b66dc
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/memcpy-1.c
@@ -0,0 +1,63 @@
+#include <string.h>
+
+#if defined (STACK_SIZE)
+#define MEMCPY_SIZE (STACK_SIZE / 3)
+#else
+#define MEMCPY_SIZE (1 << 17)
+#endif
+
+
+void *copy (void *o, const void *i, unsigned l)
+{
+ return memcpy (o, i, l);
+}
+
+main ()
+{
+ unsigned i;
+ unsigned char src[MEMCPY_SIZE];
+ unsigned char dst[MEMCPY_SIZE];
+
+ for (i = 0; i < MEMCPY_SIZE; i++)
+ src[i] = (unsigned char) i, dst[i] = 0;
+
+ (void) memcpy (dst, src, MEMCPY_SIZE / 128);
+
+ for (i = 0; i < MEMCPY_SIZE / 128; i++)
+ if (dst[i] != (unsigned char) i)
+ abort ();
+
+ (void) memset (dst, 1, MEMCPY_SIZE / 128);
+
+ for (i = 0; i < MEMCPY_SIZE / 128; i++)
+ if (dst[i] != 1)
+ abort ();
+
+ (void) memcpy (dst, src, MEMCPY_SIZE);
+
+ for (i = 0; i < MEMCPY_SIZE; i++)
+ if (dst[i] != (unsigned char) i)
+ abort ();
+
+ (void) memset (dst, 0, MEMCPY_SIZE);
+
+ for (i = 0; i < MEMCPY_SIZE; i++)
+ if (dst[i] != 0)
+ abort ();
+
+ (void) copy (dst, src, MEMCPY_SIZE / 128);
+
+ for (i = 0; i < MEMCPY_SIZE / 128; i++)
+ if (dst[i] != (unsigned char) i)
+ abort ();
+
+ (void) memset (dst, 0, MEMCPY_SIZE);
+
+ (void) copy (dst, src, MEMCPY_SIZE);
+
+ for (i = 0; i < MEMCPY_SIZE; i++)
+ if (dst[i] != (unsigned char) i)
+ abort ();
+
+ exit (0);
+}