This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug testsuite/80611] [8 regression] test case gfortran.dg/coarray_lock_7.f90 fails starting with r247495
- From: "rguenther at suse dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 09 May 2017 13:45:51 +0000
- Subject: [Bug testsuite/80611] [8 regression] test case gfortran.dg/coarray_lock_7.f90 fails starting with r247495
- Auto-submitted: auto-generated
- References: <bug-80611-4@http.gcc.gnu.org/bugzilla/>
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!