OSDN Git Service

* execute/memcpy-bi.c: New testcase.
authordevans <devans@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 2 Nov 1998 11:18:39 +0000 (11:18 +0000)
committerdevans <devans@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 2 Nov 1998 11:18:39 +0000 (11:18 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23501 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/memcpy-bi.c [new file with mode: 0644]

index 830501c..393a466 100644 (file)
@@ -1,3 +1,7 @@
+Mon Nov  2 11:16:03 1998  Doug Evans  <devans@canuck.cygnus.com>
+
+       * execute/memcpy-bi.c: New testcase.
+
 1998-10-31  Alexandre Oliva  <oliva@dcc.unicamp.br>
 
        * g++.old-deja/g++.pt/sizeof3.C: a similar testcase not involving
diff --git a/gcc/testsuite/gcc.c-torture/execute/memcpy-bi.c b/gcc/testsuite/gcc.c-torture/execute/memcpy-bi.c
new file mode 100644 (file)
index 0000000..c6d6e03
--- /dev/null
@@ -0,0 +1,52 @@
+/* Test builtin-memcpy (which may emit different code for different N).  */
+
+#define TESTSIZE 80
+
+char src[TESTSIZE] __attribute__ ((aligned));
+char dst[TESTSIZE] __attribute__ ((aligned));
+
+void
+check (char *test, char *match, int n)
+{
+  if (memcmp (test, match, n))
+    abort ();
+}
+
+#define TN(n) \
+{ memset (dst, 0, n); memcpy (dst, src, n); check (dst, src, n); }
+#define T(n) \
+TN (n) \
+TN ((n) + 1) \
+TN ((n) + 2) \
+TN ((n) + 3)
+
+main ()
+{
+  int i,j;
+
+  for (i = 0; i < sizeof (src); ++i)
+      src[i] = 'a' + i % 26;
+
+  T (0);
+  T (4);
+  T (8);
+  T (12);
+  T (16);
+  T (20);
+  T (24);
+  T (28);
+  T (32);
+  T (36);
+  T (40);
+  T (44);
+  T (48);
+  T (52);
+  T (56);
+  T (60);
+  T (64);
+  T (68);
+  T (72);
+  T (76);
+
+  return 0;
+}