Hi Janne,

Good catch - thanks for dealing with this.

OK for trunk.

Paul

On 22 September 2018 at 20:21, Janne Blomqvist
<blomqvist.ja...@gmail.com> wrote:
> It was recently noticed that for a few of the coarray intrinsics array
> index calculations were done in integer_type_node instead of
> gfc_array_index_type.  This patch fixes this.
>
> Regtested on x86_64-pc-linux-gnu, Ok for trunk?
>
> gcc/fortran/ChangeLog:
>
> 2018-09-22  Janne Blomqvist  <j...@gcc.gnu.org>
>
>         * trans-expr.c (gfc_caf_get_image_index): Do array index
>         calculations in gfc_array_index_type.
>         * trans-intrinsic.c (conv_intrinsic_event_query): Likewise.
>         * trans-stmt.c (gfc_trans_lock_unlock): Likewise.
>         (gfc_trans_event_post_wait): Likewise.
>
> gcc/testsuite/ChangeLog:
>
> 2018-09-22  Janne Blomqvist  <j...@gcc.gnu.org>
>
>         * gfortran.dg/coarray_lib_alloc_4.f90: Fix scan patterns.
>         * gfortran.dg/coarray_lock_7.f90: Likewise.
> ---
>  gcc/fortran/trans-expr.c                      | 42 +++++++++----------
>  gcc/fortran/trans-intrinsic.c                 | 18 ++++----
>  gcc/fortran/trans-stmt.c                      | 34 +++++++--------
>  .../gfortran.dg/coarray_lib_alloc_4.f90       |  2 +-
>  gcc/testsuite/gfortran.dg/coarray_lock_7.f90  | 12 +++---
>  5 files changed, 48 insertions(+), 60 deletions(-)
>
> diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
> index 1f94dcf11dd..bfda2bd746a 100644
> --- a/gcc/fortran/trans-expr.c
> +++ b/gcc/fortran/trans-expr.c
> @@ -2095,60 +2095,56 @@ gfc_caf_get_image_index (stmtblock_t *block, gfc_expr 
> *e, tree desc)
>                                   integer_zero_node);
>      }
>
> -  img_idx = integer_zero_node;
> -  extent = integer_one_node;
> +  img_idx = build_zero_cst (gfc_array_index_type);
> +  extent = build_one_cst (gfc_array_index_type);
>    if (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (desc)))
>      for (i = ref->u.ar.dimen; i < ref->u.ar.dimen + ref->u.ar.codimen; i++)
>        {
>         gfc_init_se (&se, NULL);
> -       gfc_conv_expr_type (&se, ref->u.ar.start[i], integer_type_node);
> +       gfc_conv_expr_type (&se, ref->u.ar.start[i], gfc_array_index_type);
>         gfc_add_block_to_block (block, &se.pre);
>         lbound = gfc_conv_descriptor_lbound_get (desc, gfc_rank_cst[i]);
>         tmp = fold_build2_loc (input_location, MINUS_EXPR,
> -                              integer_type_node, se.expr,
> -                              fold_convert(integer_type_node, lbound));
> -       tmp = fold_build2_loc (input_location, MULT_EXPR, integer_type_node,
> +                              TREE_TYPE (lbound), se.expr, lbound);
> +       tmp = fold_build2_loc (input_location, MULT_EXPR, TREE_TYPE (tmp),
>                                extent, tmp);
> -       img_idx = fold_build2_loc (input_location, PLUS_EXPR, 
> integer_type_node,
> -                                  img_idx, tmp);
> +       img_idx = fold_build2_loc (input_location, PLUS_EXPR,
> +                                  TREE_TYPE (tmp), img_idx, tmp);
>         if (i < ref->u.ar.dimen + ref->u.ar.codimen - 1)
>           {
>             ubound = gfc_conv_descriptor_ubound_get (desc, gfc_rank_cst[i]);
>             tmp = gfc_conv_array_extent_dim (lbound, ubound, NULL);
> -           tmp = fold_convert (integer_type_node, tmp);
>             extent = fold_build2_loc (input_location, MULT_EXPR,
> -                                     integer_type_node, extent, tmp);
> +                                     TREE_TYPE (tmp), extent, tmp);
>           }
>        }
>    else
>      for (i = ref->u.ar.dimen; i < ref->u.ar.dimen + ref->u.ar.codimen; i++)
>        {
>         gfc_init_se (&se, NULL);
> -       gfc_conv_expr_type (&se, ref->u.ar.start[i], integer_type_node);
> +       gfc_conv_expr_type (&se, ref->u.ar.start[i], gfc_array_index_type);
>         gfc_add_block_to_block (block, &se.pre);
>         lbound = GFC_TYPE_ARRAY_LBOUND (TREE_TYPE (desc), i);
> -       lbound = fold_convert (integer_type_node, lbound);
>         tmp = fold_build2_loc (input_location, MINUS_EXPR,
> -                              integer_type_node, se.expr, lbound);
> -       tmp = fold_build2_loc (input_location, MULT_EXPR, integer_type_node,
> +                              TREE_TYPE (lbound), se.expr, lbound);
> +       tmp = fold_build2_loc (input_location, MULT_EXPR, TREE_TYPE (tmp),
>                                extent, tmp);
> -       img_idx = fold_build2_loc (input_location, PLUS_EXPR, 
> integer_type_node,
> +       img_idx = fold_build2_loc (input_location, PLUS_EXPR, TREE_TYPE (tmp),
>                                    img_idx, tmp);
>         if (i < ref->u.ar.dimen + ref->u.ar.codimen - 1)
>           {
>             ubound = GFC_TYPE_ARRAY_UBOUND (TREE_TYPE (desc), i);
> -           ubound = fold_convert (integer_type_node, ubound);
>             tmp = fold_build2_loc (input_location, MINUS_EXPR,
> -                                     integer_type_node, ubound, lbound);
> -           tmp = fold_build2_loc (input_location, PLUS_EXPR, 
> integer_type_node,
> -                                  tmp, integer_one_node);
> +                                  TREE_TYPE (ubound), ubound, lbound);
> +           tmp = fold_build2_loc (input_location, PLUS_EXPR, TREE_TYPE (tmp),
> +                                  tmp, build_one_cst (TREE_TYPE (tmp)));
>             extent = fold_build2_loc (input_location, MULT_EXPR,
> -                                     integer_type_node, extent, tmp);
> +                                     TREE_TYPE (tmp), extent, tmp);
>           }
>        }
> -  img_idx = fold_build2_loc (input_location, PLUS_EXPR, integer_type_node,
> -                            img_idx, integer_one_node);
> -  return img_idx;
> +  img_idx = fold_build2_loc (input_location, PLUS_EXPR, TREE_TYPE (img_idx),
> +                            img_idx, build_one_cst (TREE_TYPE (img_idx)));
> +  return fold_convert (integer_type_node, img_idx);
>  }
>
>
> diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c
> index 11fd4b94fcc..639175ade71 100644
> --- a/gcc/fortran/trans-intrinsic.c
> +++ b/gcc/fortran/trans-intrinsic.c
> @@ -10663,7 +10663,7 @@ conv_intrinsic_event_query (gfc_code *code)
>    if (flag_coarray == GFC_FCOARRAY_LIB)
>      {
>        tree tmp, token, image_index;
> -      tree index = size_zero_node;
> +      tree index = build_zero_cst (gfc_array_index_type);
>
>        if (event_expr->expr_type == EXPR_FUNCTION
>           && event_expr->value.function.isym
> @@ -10716,29 +10716,25 @@ conv_intrinsic_event_query (gfc_code *code)
>           desc = argse.expr;
>           *ar = ar2;
>
> -         extent = integer_one_node;
> +         extent = build_one_cst (gfc_array_index_type);
>           for (i = 0; i < ar->dimen; i++)
>             {
>               gfc_init_se (&argse, NULL);
> -             gfc_conv_expr_type (&argse, ar->start[i], integer_type_node);
> +             gfc_conv_expr_type (&argse, ar->start[i], gfc_array_index_type);
>               gfc_add_block_to_block (&argse.pre, &argse.pre);
>               lbound = gfc_conv_descriptor_lbound_get (desc, gfc_rank_cst[i]);
>               tmp = fold_build2_loc (input_location, MINUS_EXPR,
> -                                    integer_type_node, argse.expr,
> -                                    fold_convert(integer_type_node, lbound));
> +                                    TREE_TYPE (lbound), argse.expr, lbound);
>               tmp = fold_build2_loc (input_location, MULT_EXPR,
> -                                    integer_type_node, extent, tmp);
> +                                    TREE_TYPE (tmp), extent, tmp);
>               index = fold_build2_loc (input_location, PLUS_EXPR,
> -                                      gfc_array_index_type, index,
> -                                      fold_convert (gfc_array_index_type,
> -                                                    tmp));
> +                                      TREE_TYPE (tmp), index, tmp);
>               if (i < ar->dimen - 1)
>                 {
>                   ubound = gfc_conv_descriptor_ubound_get (desc, 
> gfc_rank_cst[i]);
>                   tmp = gfc_conv_array_extent_dim (lbound, ubound, NULL);
> -                 tmp = fold_convert (integer_type_node, tmp);
>                   extent = fold_build2_loc (input_location, MULT_EXPR,
> -                                           integer_type_node, extent, tmp);
> +                                           TREE_TYPE (tmp), extent, tmp);
>                 }
>             }
>         }
> diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
> index 833c6c5f0a7..ef9e519adc8 100644
> --- a/gcc/fortran/trans-stmt.c
> +++ b/gcc/fortran/trans-stmt.c
> @@ -841,7 +841,7 @@ gfc_trans_lock_unlock (gfc_code *code, gfc_exec_op op)
>    if (flag_coarray == GFC_FCOARRAY_LIB)
>      {
>        tree tmp, token, image_index, errmsg, errmsg_len;
> -      tree index = size_zero_node;
> +      tree index = build_zero_cst (gfc_array_index_type);
>        tree caf_decl = gfc_get_tree_for_caf_expr (code->expr1);
>
>        if (code->expr1->symtree->n.sym->ts.type != BT_DERIVED
> @@ -884,27 +884,25 @@ gfc_trans_lock_unlock (gfc_code *code, gfc_exec_op op)
>           desc = argse.expr;
>           *ar = ar2;
>
> -         extent = integer_one_node;
> +         extent = build_one_cst (gfc_array_index_type);
>           for (i = 0; i < ar->dimen; i++)
>             {
>               gfc_init_se (&argse, NULL);
> -             gfc_conv_expr_type (&argse, ar->start[i], integer_type_node);
> +             gfc_conv_expr_type (&argse, ar->start[i], gfc_array_index_type);
>               gfc_add_block_to_block (&argse.pre, &argse.pre);
>               lbound = gfc_conv_descriptor_lbound_get (desc, gfc_rank_cst[i]);
>               tmp = fold_build2_loc (input_location, MINUS_EXPR,
> -                                    integer_type_node, argse.expr,
> -                                    fold_convert(integer_type_node, lbound));
> +                                    TREE_TYPE (lbound), argse.expr, lbound);
>               tmp = fold_build2_loc (input_location, MULT_EXPR,
> -                                    integer_type_node, extent, tmp);
> +                                    TREE_TYPE (tmp), extent, tmp);
>               index = fold_build2_loc (input_location, PLUS_EXPR,
> -                                      integer_type_node, index, tmp);
> +                                      TREE_TYPE (tmp), index, tmp);
>               if (i < ar->dimen - 1)
>                 {
>                   ubound = gfc_conv_descriptor_ubound_get (desc, 
> gfc_rank_cst[i]);
>                   tmp = gfc_conv_array_extent_dim (lbound, ubound, NULL);
> -                 tmp = fold_convert (integer_type_node, tmp);
>                   extent = fold_build2_loc (input_location, MULT_EXPR,
> -                                           integer_type_node, extent, tmp);
> +                                           TREE_TYPE (tmp), extent, tmp);
>                 }
>             }
>         }
> @@ -938,6 +936,7 @@ gfc_trans_lock_unlock (gfc_code *code, gfc_exec_op op)
>           lock_acquired = gfc_create_var (integer_type_node, "acquired");
>         }
>
> +      index = fold_convert (size_type_node, index);
>        if (op == EXEC_LOCK)
>         tmp = build_call_expr_loc (input_location, gfor_fndecl_caf_lock, 7,
>                                     token, index, image_index,
> @@ -1038,7 +1037,7 @@ gfc_trans_event_post_wait (gfc_code *code, gfc_exec_op 
> op)
>
>    gfc_start_block (&se.pre);
>    tree tmp, token, image_index, errmsg, errmsg_len;
> -  tree index = size_zero_node;
> +  tree index = build_zero_cst (gfc_array_index_type);
>    tree caf_decl = gfc_get_tree_for_caf_expr (code->expr1);
>
>    if (code->expr1->symtree->n.sym->ts.type != BT_DERIVED
> @@ -1083,28 +1082,25 @@ gfc_trans_event_post_wait (gfc_code *code, 
> gfc_exec_op op)
>        desc = argse.expr;
>        *ar = ar2;
>
> -      extent = integer_one_node;
> +      extent = build_one_cst (gfc_array_index_type);
>        for (i = 0; i < ar->dimen; i++)
>         {
>           gfc_init_se (&argse, NULL);
> -         gfc_conv_expr_type (&argse, ar->start[i], integer_type_node);
> +         gfc_conv_expr_type (&argse, ar->start[i], gfc_array_index_type);
>           gfc_add_block_to_block (&argse.pre, &argse.pre);
>           lbound = gfc_conv_descriptor_lbound_get (desc, gfc_rank_cst[i]);
>           tmp = fold_build2_loc (input_location, MINUS_EXPR,
> -                                integer_type_node, argse.expr,
> -                                fold_convert(integer_type_node, lbound));
> +                                TREE_TYPE (lbound), argse.expr, lbound);
>           tmp = fold_build2_loc (input_location, MULT_EXPR,
> -                                integer_type_node, extent, tmp);
> +                                TREE_TYPE (tmp), extent, tmp);
>           index = fold_build2_loc (input_location, PLUS_EXPR,
> -                                  gfc_array_index_type, index,
> -                                  fold_convert (gfc_array_index_type, tmp));
> +                                  TREE_TYPE (tmp), index, tmp);
>           if (i < ar->dimen - 1)
>             {
>               ubound = gfc_conv_descriptor_ubound_get (desc, gfc_rank_cst[i]);
>               tmp = gfc_conv_array_extent_dim (lbound, ubound, NULL);
> -             tmp = fold_convert (integer_type_node, tmp);
>               extent = fold_build2_loc (input_location, MULT_EXPR,
> -                                       integer_type_node, extent, tmp);
> +                                       TREE_TYPE (tmp), extent, tmp);
>             }
>         }
>      }
> diff --git a/gcc/testsuite/gfortran.dg/coarray_lib_alloc_4.f90 
> b/gcc/testsuite/gfortran.dg/coarray_lib_alloc_4.f90
> index c08378816ca..d695faa9eaf 100644
> --- a/gcc/testsuite/gfortran.dg/coarray_lib_alloc_4.f90
> +++ b/gcc/testsuite/gfortran.dg/coarray_lib_alloc_4.f90
> @@ -38,7 +38,7 @@ program test_caf_alloc
>    deallocate(xx)
>  end
>
> -! { dg-final { scan-tree-dump-times "_gfortran_caf_is_present \\(xx\\.token, 
> 2 - \\(integer\\(kind=4\\)\\) xx\\.dim\\\[0\\\]\\.lbound, 
> &caf_ref\\.\[0-9\]+\\)|_gfortran_caf_is_present \\(xx\\.token, 2 - 
> xx\\.dim\\\[0\\\]\\.lbound, &caf_ref\\.\[0-9\]+\\)" 10 "original" } }
> +! { dg-final { scan-tree-dump-times "_gfortran_caf_is_present \\(xx\\.token, 
> \\(integer\\(kind=4\\)\\) \\(2 - xx\\.dim\\\[0\\\]\\.lbound\\), 
> &caf_ref\\.\[0-9\]+\\)|_gfortran_caf_is_present \\(xx\\.token, 2 - 
> xx\\.dim\\\[0\\\]\\.lbound, &caf_ref\\.\[0-9\]+\\)" 10 "original" } }
>  ! { dg-final { scan-tree-dump-times "_gfortran_caf_register \\(\[0-9\]+, 1, 
> &xx\\.token, \\(void \\*\\) &xx, 0B, 0B, 0\\)" 1 "original" } }
>  ! { dg-final { scan-tree-dump-times "_gfortran_caf_register \\(\[0-9\]+, 7" 
> 2 "original" } }
>  ! { dg-final { scan-tree-dump-times "_gfortran_caf_register \\(\[0-9\]+, 8" 
> 2 "original" } }
> diff --git a/gcc/testsuite/gfortran.dg/coarray_lock_7.f90 
> b/gcc/testsuite/gfortran.dg/coarray_lock_7.f90
> index 1478c7a9539..363fb30b5d7 100644
> --- a/gcc/testsuite/gfortran.dg/coarray_lock_7.f90
> +++ b/gcc/testsuite/gfortran.dg/coarray_lock_7.f90
> @@ -35,12 +35,12 @@ 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> \\+ 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 \\(caf_token.., 
> .*\\(\\(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\\);|_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 - 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\\);|_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" } }
> +! { dg-final { scan-tree-dump-times "_gfortran_caf_lock \\(three.token, 0, 
> \\(integer\\(kind=4\\)\\) \\(5 - 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, 
> \\(integer\\(kind=4\\)\\) \\(8 - three.dim\\\[0\\\].lbound\\), &ii, 0B, 
> 0\\);|_gfortran_caf_unlock \\(three.token, 0, 8 - three.dim\\\[0\\\].lbound, 
> &ii, 0B, 0\\);" 1 "original" } }
>
> -! { dg-final { scan-tree-dump-times "_gfortran_caf_lock \\(four.token, 1 - 
> \\(integer\\(kind=4\\)\\) four.dim\\\[0\\\].lbound, 7 - 
> \\(integer\\(kind=4\\)\\) four.dim\\\[1\\\].lbound, &acquired.\[0-9\]+, &ii, 
> 0B, 0\\);|_gfortran_caf_lock \\(four.token, 1 - four.dim\\\[0\\\].lbound, 7 - 
> four.dim\\\[1\\\].lbound, &acquired.\[0-9\]+, &ii, 0B, 0\\);" 1 "original" } }
> -! { dg-final { scan-tree-dump-times "_gfortran_caf_unlock \\(four.token, 2 - 
> \\(integer\\(kind=4\\)\\) four.dim\\\[0\\\].lbound, 8 - 
> \\(integer\\(kind=4\\)\\) four.dim\\\[1\\\].lbound, 0B, 0B, 
> 0\\);|_gfortran_caf_unlock \\(four.token, 2 - four.dim\\\[0\\\].lbound, 8 - 
> four.dim\\\[1\\\].lbound, 0B, 0B, 0\\);" 1 "original" } }
> +! { dg-final { scan-tree-dump-times "_gfortran_caf_lock \\(four.token, 
> .*\\(1 - four.dim\\\[0\\\].lbound\\), \\(integer\\(kind=4\\)\\) \\(7 - 
> four.dim\\\[1\\\].lbound\\), &acquired.\[0-9\]+, &ii, 0B, 
> 0\\);|_gfortran_caf_lock \\(four.token, 1 - four.dim\\\[0\\\].lbound, 7 - 
> four.dim\\\[1\\\].lbound, &acquired.\[0-9\]+, &ii, 0B, 0\\);" 1 "original" } }
> +! { dg-final { scan-tree-dump-times "_gfortran_caf_unlock \\(four.token, 
> .*\\(2 - four.dim\\\[0\\\].lbound\\), \\(integer\\(kind=4\\)\\) \\(8 - 
> four.dim\\\[1\\\].lbound\\), 0B, 0B, 0\\);|_gfortran_caf_unlock 
> \\(four.token, 2 - four.dim\\\[0\\\].lbound, 8 - four.dim\\\[1\\\].lbound, 
> 0B, 0B, 0\\);" 1 "original" } }
>
> --
> 2.17.1
>



-- 
"If you can't explain it simply, you don't understand it well enough"
- Albert Einstein

Reply via email to