This patch improves an existing test case for memcpy. The test case
memcpy-2.c checks that memory outside the destination is not corrupted. The
check fails if SEQUENCE_LENGTH < MAX_OFFSET, although it does not happen
with the default values of these macros. This patch fixes the check to work
for small values of SEQUENCE_LENGTH. The patch also allows SEQUENCE_LENGTH
to be redefined without a compiler warning. 

The patched test case passes on arm-none-eabi --with-cpu cortex-a9 on qemu.


2011-09-19  Greta Yorsh  <greta.yo...@arm.com>

        * gcc.c-torture/execute/memcpy-2.c (main): Fix validation of memcpy 
        to work for small values of SEQUENCE_LENGTH.

diff --git a/gcc/testsuite/gcc.c-torture/execute/memcpy-2.c 
b/gcc/testsuite/gcc.c-torture/execute/memcpy-2.c
index f328b64..0182fe6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/memcpy-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/memcpy-2.c
@@ -24,7 +24,9 @@
 
 /* Use a sequence length that is not divisible by two, to make it more
    likely to detect when words are mixed up.  */
+#ifndef SEQUENCE_LENGTH
 #define SEQUENCE_LENGTH 31
+#endif
 
 static union {
   char buf[MAX_LENGTH];
@@ -58,7 +60,7 @@ main ()
            if (*q != 'a')
              abort ();
 
-         for (i = 0, c = 'A' + off2; i < len; i++, q++, c++)
+         for (i = 0, c = 'A' + (off2 % SEQUENCE_LENGTH); i < len; i++, q++, 
c++)
            {
              if (c >= 'A' + SEQUENCE_LENGTH)
                c = 'A';

Reply via email to