This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug testsuite/80611] [8 regression] test case gfortran.dg/coarray_lock_7.f90 fails starting with r247495


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80611

--- Comment #3 from rguenther at suse dot de <rguenther at suse dot de> ---
On Tue, 9 May 2017, dominiq at lps dot ens.fr wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80611
> 
> --- Comment #2 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
> The following patch fixes the failures:
> 
> --- ../_clean/gcc/testsuite/gfortran.dg/coarray_lock_7.f90      2016-09-19
> 18:03:55.000000000 +0200
> +++ gcc/testsuite/gfortran.dg/coarray_lock_7.f90        2017-05-09
> 15:37:16.000000000 +0200
> @@ -35,8 +35,8 @@ end
>  ! { dg-final { scan-tree-dump-times "_gfortran_caf_lock \\(caf_token.., 0, 0,
> 0B, 0B, 0B, 0\\);" 1 "original" } }
>  ! { dg-final { scan-tree-dump-times "_gfortran_caf_unlock \\(caf_token.., 0,
> 0, 0B, 0B, 0\\);" 1 "original" } }
> 
> -! { dg-final { scan-tree-dump-times "_gfortran_caf_lock \\(caf_token.., \\(3 -
> \\(integer\\(kind=4\\)\\) parm...dim\\\[0\\\].lbound\\) \\+
> \\(integer\\(kind=4\\)\\) MAX_EXPR <\\(parm...dim\\\[0\\\].ubound -
> parm...dim\\\[0\\\].lbound\\) \\+ 1, 0> \\* \\(3 - \\(integer\\(kind=4\\)\\)
> parm...dim\\\[1\\\].lbound\\), 0, 0B, &ii, 0B, 0\\);|_gfortran_caf_lock
> \\(caf_token.1, \\(3 - parm...dim\\\[0\\\].lbound\\) \\+ MAX_EXPR
> <\\(parm...dim\\\[0\\\].ubound - parm...dim\\\[0\\\].lbound\\) \\+ 1, 0> \\*
> \\(3 - parm...dim\\\[1\\\].lbound\\), 0, 0B, &ii, 0B, 0\\);" 1 "original" } }
> -! { dg-final { scan-tree-dump-times "_gfortran_caf_unlock \\(caf_token.., \\(2
> - \\(integer\\(kind=4\\)\\) parm...dim\\\[0\\\].lbound\\) \\+
> \\(integer\\(kind=4\\)\\) MAX_EXPR <\\(parm...dim\\\[0\\\].ubound -
> parm...dim\\\[0\\\].lbound\\) \\+ 1, 0> \\* \\(3 - \\(integer\\(kind=4\\)\\)
> parm...dim\\\[1\\\].lbound\\), 0, &ii, 0B, 0\\);|_gfortran_caf_unlock
> \\(caf_token.., \\(2 - parm...dim\\\[0\\\].lbound\\) \\+ MAX_EXPR
> <\\(parm...dim\\\[0\\\].ubound - parm...dim\\\[0\\\].lbound\\) \\+ 1, 0> \\*
> \\(3 - parm...dim\\\[1\\\].lbound\\), 0, &ii, 0B, 0\\);" 1 "original" } }
> +! { dg-final { scan-tree-dump-times "_gfortran_caf_lock \\(caf_token.., \\(3 -
> \\(integer\\(kind=4\\)\\) parm...dim\\\[0\\\].lbound\\) \\+
> \\(integer\\(kind=4\\)\\) \\(MAX_EXPR <parm...dim\\\[0\\\].ubound -
> parm...dim\\\[0\\\].lbound, -1> \\+ 1\\) \\* \\(3 - \\(integer\\(kind=4\\)\\)
> parm...dim\\\[1\\\].lbound\\), 0, 0B, &ii, 0B, 0\\);|_gfortran_caf_lock
> \\(caf_token.1, \\(3 - parm...dim\\\[0\\\].lbound\\) \\+ \\(MAX_EXPR
> <parm...dim\\\[0\\\].ubound - parm...dim\\\[0\\\].lbound, -1> \\+ 1\\) \\* \\(3
> - parm...dim\\\[1\\\].lbound\\), 0, 0B, &ii, 0B, 0\\);" 1 "original" } }
> +! { dg-final { scan-tree-dump-times "_gfortran_caf_unlock \\(caf_token.., \\(2
> - \\(integer\\(kind=4\\)\\) parm...dim\\\[0\\\].lbound\\) \\+
> \\(integer\\(kind=4\\)\\) \\(MAX_EXPR <parm...dim\\\[0\\\].ubound -
> parm...dim\\\[0\\\].lbound, -1> \\+ 1\\) \\* \\(3 - \\(integer\\(kind=4\\)\\)
> parm...dim\\\[1\\\].lbound\\), 0, &ii, 0B, 0\\);|_gfortran_caf_unlock
> \\(caf_token.., \\(2 - parm...dim\\\[0\\\].lbound\\) \\+ \\(MAX_EXPR
> <parm...dim\\\[0\\\].ubound - parm...dim\\\[0\\\].lbound, -1> \\+ 1\\) \\* \\(3
> - parm...dim\\\[1\\\].lbound\\), 0, &ii, 0B, 0\\);" 1 "original" } }
> 
>  ! { dg-final { scan-tree-dump-times "_gfortran_caf_lock \\(three.token, 0, 5 -
> \\(integer\\(kind=4\\)\\) three.dim\\\[0\\\].lbound, &acquired.\[0-9\]+, 0B,
> 0B, 0\\);|_gfortran_caf_lock \\(three.token, 0, 5 - three.dim\\\[0\\\].lbound,
> &acquired.\[0-9\]+, 0B, 0B, 0\\);" 1 "original" } }
>  ! { dg-final { scan-tree-dump-times "_gfortran_caf_unlock \\(three.token, 0, 8
> - \\(integer\\(kind=4\\)\\) three.dim\\\[0\\\].lbound, &ii, 0B,
> 0\\);|_gfortran_caf_unlock \\(three.token, 0, 8 - three.dim\\\[0\\\].lbound,
> &ii, 0B, 0\\);" 1 "original" } }
> 
> I didn't try to find which revision replaced
> 
> MAX_EXPR <(parm.9.dim[0].ubound - parm.9.dim[0].lbound) + 1, 0>
> 
> with
> 
> (MAX_EXPR <parm.9.dim[0].ubound - parm.9.dim[0].lbound, -1> + 1)

The one enabling strict overflow by default for sure.  Thanks for fixing
and please commit!

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]