On Wed, Aug 18, 2021 at 01:10:12PM +0200, Tobias Burnus wrote:
> I think otherwise the patch is boring - as boring as 'omp nothing' itself
> (outside its use in metadirectives).

Yeah, I think nobody sane will use it for anything but metadirective
except in compiler testsuites.

> Fortran: Add OpenMP's nothing directive support
> 
> Fortran version of commit 5079b7781a2c506dcdfb241347d74c7891268225
> 
> gcc/fortran/ChangeLog:
> 
>       * match.h (gfc_match_omp_nothing): New.
>       * openmp.c (gfc_match_omp_nothing): New.
>       * parse.c (decode_omp_directive): Match 'nothing' directive.
> 
> gcc/testsuite/ChangeLog:
> 
>       * gfortran.dg/nothing-1.f90: New test.
>       * gfortran.dg/nothing-2.f90: New test.

LGTM, thanks.

> +  !$omp nothing
> +  if (.false.) &
> +& &    !$omp nothing
> +    i = i + 1
> +
> +  if (.false.) &
> +&   & !$omp nothing
> +    then
> +  end if

I'm actually not sure if the above really is valid (well, treated as OpenMP
directive, rather than just an arbitrary comment), e.g. 5.0 2.2.2 says:
The sentinel can appear in any column but must be preceded only by white space;
which is not the case above.  And I think that is the reason we don't have a
Fortran counterpart to the stand-alone and declarative directive
restrictions C/C++ has that they can't appear in certain contexts.

So, do we actually parse
  if (.true.) &
& & !$omp barrier
as if with barrier construct in it?

        Jakub

Reply via email to