[patch] Fix array overflow in gcc.dg/vect/no-vfa-vect-depend-2.c

Paul Pluzhnikov ppluzhnikov@google.com
Wed Feb 5 01:09:00 GMT 2014


+cc jakub

On Tue, Feb 4, 2014 at 4:59 PM, Paul Pluzhnikov <ppluzhnikov@google.com> wrote:
> Greetings,
>
> The gcc.dg/vect/no-vfa-vect-depend-2.c failed for us, when linked with
> gold, but not when linked with BFD ld.
>
> The problem appears to be off-by-one error causing array out of bounds
> access, fixed by attached patch.

Alternate fix (used in no-vfa-vect-depend-3.c):

--- gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c    (revision 207487)
+++ gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c    (working copy)
@@ -5,8 +5,8 @@

 #define N 17

-int ia[N] = {48,45,42,39,36,33,30,27,24,21,18,15,12,9,6,3,0};
-int ib[N] = {48,45,42,39,36,33,30,27,24,21,18,15,12,9,6,3,0};
+int ia[N + 1] = {48,45,42,39,36,33,30,27,24,21,18,15,12,9,6,3,0};
+int ib[N + 1] = {48,45,42,39,36,33,30,27,24,21,18,15,12,9,6,3,0};
 int res[N] = {48,192,180,168,156,144,132,120,108,96,84,72,60,48,36,24,12};

 __attribute__ ((noinline))


>
> OK for trunk?
>
> Thanks,
>
>
> gcc/testsuite/ChangeLog:
>
> 2014-02-04  Paul Pluzhnikov  <ppluzhnikov@google.com>
>
>         * gcc.dg/vect/no-vfa-vect-depend-2.c (main1): Fix buffer
>           overflow.
>
>
> Index: gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c
> ===================================================================
> --- gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c    (revision 207487)
> +++ gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c    (working copy)
> @@ -15,7 +15,7 @@
>    int i;
>
>    /* Not vectorizable due to data dependence: dependence distance 1.  */
> -  for (i = N - 1; i >= 0; i--)
> +  for (i = N - 2; i >= 0; i--)
>      {
>        ia[i] = ia[i+1] * 4;
>      }
> @@ -28,7 +28,7 @@
>      }
>
>    /* Vectorizable. Dependence distance -1.  */
> -  for (i = N - 1; i >= 0; i--)
> +  for (i = N - 2; i >= 0; i--)
>      {
>        ib[i+1] = ib[i] * 4;
>      }



-- 
Paul Pluzhnikov



More information about the Gcc-patches mailing list