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