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

--- Comment #2 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:948d461954f2642ca187f86c19d297ba7a86320f

commit r12-4809-g948d461954f2642ca187f86c19d297ba7a86320f
Author: Tobias Burnus <tob...@codesourcery.com>
Date:   Sat Oct 30 23:45:32 2021 +0200

    OpenMP: Add strictly nested API call check [PR102972]

    The teams construct only permits omp_get_num_teams and omp_get_team_num
    as API call in strictly nested regions - check for it.

    Additionally, for Fortran, using DECL_NAME does not show the mangled
    name, hence, DECL_ASSEMBLER_NAME had to be used to.

    Finally, 'target device(ancestor:1)' wrongly rejected non-API calls
    as well.

            PR middle-end/102972
    gcc/ChangeLog:

            * omp-low.c (omp_runtime_api_call): Use DECL_ASSEMBLER_NAME to get
            internal Fortran name; new permit_num_teams arg to permit
            omp_get_num_teams and omp_get_team_num.
            (scan_omp_1_stmt): Update call to it, add missing call for
            reverse offload, and check for strictly nested API calls in teams.

    gcc/testsuite/ChangeLog:

            * c-c++-common/gomp/target-device-ancestor-3.c: Add non-API
            routine test.
            * gfortran.dg/gomp/order-6.f90: Add missing bind(C).
            * c-c++-common/gomp/teams-3.c: New test.
            * gfortran.dg/gomp/teams-3.f90: New test.
            * gfortran.dg/gomp/teams-4.f90: New test.

    libgomp/ChangeLog:
            * testsuite/libgomp.c-c++-common/icv-3.c: Nest API calls inside
            parallel construct.
            * testsuite/libgomp.c-c++-common/icv-4.c: Likewise.
            * testsuite/libgomp.c/target-3.c: Likewise.
            * testsuite/libgomp.c/target-5.c: Likewise.
            * testsuite/libgomp.c/target-6.c: Likewise.
            * testsuite/libgomp.c/target-teams-1.c: Likewise.
            * testsuite/libgomp.c/teams-1.c: Likewise.
            * testsuite/libgomp.c/thread-limit-2.c: Likewise.
            * testsuite/libgomp.c/thread-limit-3.c: Likewise.
            * testsuite/libgomp.c/thread-limit-4.c: Likewise.
            * testsuite/libgomp.c/thread-limit-5.c: Likewise.
            * testsuite/libgomp.fortran/icv-3.f90: Likewise.
            * testsuite/libgomp.fortran/icv-4.f90: Likewise.
            * testsuite/libgomp.fortran/teams1.f90: Likewise.

Reply via email to