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

--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Jakub Jelinek
<ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:6d30cfc3fc88976151d0d10e73e10111ccb71ee0

commit r13-8730-g6d30cfc3fc88976151d0d10e73e10111ccb71ee0
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Thu Apr 25 20:09:35 2024 +0200

    openmp: Copy DECL_LANG_SPECIFIC and DECL_LANG_FLAG_? to tree-nested decl
copy [PR114825]

    tree-nested.cc creates in 2 spots artificial VAR_DECLs, one of them is used
    both for debug info and OpenMP/OpenACC lowering purposes, the other solely
for
    OpenMP/OpenACC lowering purposes.
    When the decls are used in OpenMP/OpenACC lowering, the OMP langhooks
(mostly
    Fortran, C just a little and C++ doesn't have nested functions) then
inspect
    the flags on the vars and based on that decide how to lower the
corresponding
    clauses.

    Unfortunately we weren't copying DECL_LANG_SPECIFIC and DECL_LANG_FLAG_?,
so
    the langhooks made decisions on the default flags on those instead.
    As the original decl isn't necessarily a VAR_DECL, could be e.g. PARM_DECL,
    using copy_node wouldn't work properly, so this patch just copies those
    flags in addition to other flags it was copying already.  And I've removed
    code duplication by introducing a helper function which does copying common
    to both uses.

    2024-04-25  Jakub Jelinek  <ja...@redhat.com>

            PR fortran/114825
            * tree-nested.cc (get_debug_decl): New function.
            (get_nonlocal_debug_decl): Use it.
            (get_local_debug_decl): Likewise.

            * gfortran.dg/gomp/pr114825.f90: New test.

    (cherry picked from commit 14d48516e588ad2b35e2007b3970bdcb1b3f145c)

Reply via email to