diff mbox

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

Message ID ye6qwqhagysd.fsf@elbrus2.mtv.corp.google.com
State New
Headers show

Commit Message

Paul Pluzhnikov Feb. 5, 2014, 12:59 a.m. UTC
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.

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.

Comments

Jakub Jelinek Feb. 10, 2014, 8:09 a.m. UTC | #1
On Tue, Feb 04, 2014 at 04:59:14PM -0800, Paul Pluzhnikov wrote:
> gcc/testsuite/ChangeLog:
> 
> 2014-02-04  Paul Pluzhnikov  <ppluzhnikov@google.com>
> 
> 	* gcc.dg/vect/no-vfa-vect-depend-2.c (main1): Fix buffer
>           overflow.

Ok, thanks.

> --- 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;
>      }

	Jakub
Paul Pluzhnikov Feb. 19, 2014, 2:24 a.m. UTC | #2
Jakub,

On Mon, Feb 10, 2014 at 12:09 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Tue, Feb 04, 2014 at 04:59:14PM -0800, Paul Pluzhnikov wrote:
>> gcc/testsuite/ChangeLog:
>>
>> 2014-02-04  Paul Pluzhnikov  <ppluzhnikov@google.com>
>>
>>       * gcc.dg/vect/no-vfa-vect-depend-2.c (main1): Fix buffer
>>           overflow.
>
> Ok, thanks.

Sorry, did you vouch for this:

-  for (i = N - 1; i >= 0; i--)
+  for (i = N - 2; i >= 0; i--)

or that:

-int ia[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};


Thanks,
Jakub Jelinek Feb. 19, 2014, 6:13 a.m. UTC | #3
On Tue, Feb 18, 2014 at 06:24:17PM -0800, Paul Pluzhnikov wrote:
> Jakub,
> 
> On Mon, Feb 10, 2014 at 12:09 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> > On Tue, Feb 04, 2014 at 04:59:14PM -0800, Paul Pluzhnikov wrote:
> >> gcc/testsuite/ChangeLog:
> >>
> >> 2014-02-04  Paul Pluzhnikov  <ppluzhnikov@google.com>
> >>
> >>       * gcc.dg/vect/no-vfa-vect-depend-2.c (main1): Fix buffer
> >>           overflow.
> >
> > Ok, thanks.
> 
> Sorry, did you vouch for this:
> 
> -  for (i = N - 1; i >= 0; i--)
> +  for (i = N - 2; i >= 0; i--)

This one.

	Jakub
diff mbox

Patch

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;
     }