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

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Thomas Schwinge <tschwi...@gcc.gnu.org>:

https://gcc.gnu.org/g:b2202431910e30d8505c94d1cb9341cac7080d10

commit r12-8252-gb2202431910e30d8505c94d1cb9341cac7080d10
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Wed Apr 20 19:06:17 2022 +0200

    fortran: Fix up gfc_trans_oacc_construct [PR104717]

    So that move_sese_region_to_fn works properly, OpenMP/OpenACC constructs
    for which that function is invoked need an extra artificial BIND_EXPR
    around their body so that we move all variables of the bodies.

    The C/C++ FEs do that both for OpenMP constructs like OMP_PARALLEL,
OMP_TASK
    or OMP_TARGET and for OpenACC constructs that behave similarly to
    OMP_TARGET, but the Fortran FE only does that for OpenMP constructs.

    The following patch does that for OpenACC constructs too.

            PR fortran/104717
            gcc/fortran/
            * trans-openmp.cc (gfc_trans_oacc_construct): Wrap construct body
            in an extra BIND_EXPR.
            gcc/testsuite/
            * gfortran.dg/goacc/pr104717.f90: New test.
            * gfortran.dg/goacc/privatization-1-compute-loop.f90: Adjust.
            libgomp/
            * testsuite/libgomp.oacc-fortran/privatized-ref-2.f90: Adjust.

    Co-authored-by: Thomas Schwinge <tho...@codesourcery.com>

Reply via email to