https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110725

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tobias Burnus <bur...@gcc.gnu.org>:

https://gcc.gnu.org/g:09dda270380fe13e7b4722305cb1122df1f779a0

commit r14-2761-g09dda270380fe13e7b4722305cb1122df1f779a0
Author: Tobias Burnus <tob...@codesourcery.com>
Date:   Tue Jul 25 15:43:58 2023 +0200

    OpenMP/Fortran: Reject declarations between target + teams

    While commit r14-2754-g2e31fe431b08b0302e1fa8a1c18ee51adafd41df
    detected executable statements, declarations do not show up as
    executable statements.  Hence, we now check whether the first
    statement after TARGET is TEAMS - such that we can detect data
    statements like type or variable declarations.  Fortran semantics
    ensures that only executable directives/statemens can come after
    '!$omp end teams' such that those can be detected with the
    previous check.

    Note that statements returning ST_NONE such as 'omp nothing' or
    'omp error at(compilation)' will still slip through.

            PR fortran/110725
            PR middle-end/71065

    gcc/fortran/ChangeLog:

            * gfortran.h (gfc_omp_clauses): Add target_first_st_is_teams.
            * parse.cc (parse_omp_structured_block): Set it if the first
            statement in the structured block of a TARGET is TEAMS or
            a combined/composite starting with TEAMS.
            * openmp.cc (resolve_omp_target): Also show an error for
            contains_teams_construct without target_first_st_is_teams.

    gcc/testsuite/ChangeLog:

            * gfortran.dg/gomp/teams-6.f90: New test.

Reply via email to