On Mon, Feb 28, 2022 at 02:01:03PM +0000, Kwok Cheung Yeung wrote:
> gcc/fortran/
> 
>       PR fortran/104131
>       * openmp.cc (gfc_match_omp_detach): Check that the event handle is not
>       an array type.
> 
> gcc/testsuite/
> 
>       PR fortran/104131
>       * gfortran.dg/gomp/pr104131.f90: New.
>       * gfortran.dg/gomp/pr104131-2.f90: New.
>       * gfortran.dg/gomp/task-detach-1.f90: Update expected error message.
> ---
>  gcc/fortran/openmp.cc                            |  5 +++--
>  gcc/testsuite/gfortran.dg/gomp/pr104131-2.f90    | 10 ++++++++++
>  gcc/testsuite/gfortran.dg/gomp/pr104131.f90      | 10 ++++++++++
>  gcc/testsuite/gfortran.dg/gomp/task-detach-1.f90 |  2 +-
>  4 files changed, 24 insertions(+), 3 deletions(-)
>  create mode 100644 gcc/testsuite/gfortran.dg/gomp/pr104131-2.f90
>  create mode 100644 gcc/testsuite/gfortran.dg/gomp/pr104131.f90
> 
> diff --git a/gcc/fortran/openmp.cc b/gcc/fortran/openmp.cc
> index 19142c4d8d0..50a1c476009 100644
> --- a/gcc/fortran/openmp.cc
> +++ b/gcc/fortran/openmp.cc
> @@ -531,9 +531,10 @@ gfc_match_omp_detach (gfc_expr **expr)
>    if (gfc_match_variable (expr, 0) != MATCH_YES)
>      goto syntax_error;
>  
> -  if ((*expr)->ts.type != BT_INTEGER || (*expr)->ts.kind != 
> gfc_c_intptr_kind)
> +  if ((*expr)->ts.type != BT_INTEGER || (*expr)->ts.kind != gfc_c_intptr_kind
> +      || (*expr)->symtree->n.sym->as)

Don't we usually test instead || (*expr)->rank != 0 when testing for
scalars?

        Jakub

Reply via email to