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

--- Comment #18 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Thomas Schwinge <[email protected]>:

https://gcc.gnu.org/g:62c888a8f13ddc7184a741dc849fd62e5a2b5962

commit r17-5500-g62c888a8f13ddc7184a741dc849fd62e5a2b5962
Author: Thomas Schwinge <[email protected]>
Date:   Thu Oct 22 14:43:38 2026 +0200

    openmp c++: Temporary fix for some lambda mapping problems: Map lambda
objects that are subobjects of aggregates [PR127559]

    Since commit 84d5fecd2694ad70f391a20451d43d82fde37eb5
    "openmp c++: Temporary fix for some lambda mapping problems [PR127559]",
the
    C++ front end no longer maps lambda objects that are subobjects of
aggregates,
    such as 'c.x' or 'd[y].x' in 'libgomp.c++/target-lambda-6.C', or their
    by-reference captures.  'gcc/cp/semantics.cc:finish_omp_target_clauses_r'
looks
    through 'COMPONENT_REF's, 'ARRAY_REF's for a 'VAR_DECL', 'PARM_DECL',
    'RESULT_DECL' base, but the base is wrapped in a 'VIEW_CONVERT_EXPR'
(location
    wrapper), and therefore not recognized.  Strip location wrappers while
looking
    for the base of a lambda object.

    With that, un-XFAIL the 'libgomp.c++/target-lambda-6.C' execution test, its
    'scan-tree-dump's, and similarly in the new
'g++.dg/gomp/target-lambda-3.C';
    all these are now regression-fixed, and back to the PASSing behavior that
they
    (would have) had before commit 84d5fecd2694ad70f391a20451d43d82fde37eb5
    "openmp c++: Temporary fix for some lambda mapping problems [PR127559]".

            PR c++/127559
            gcc/cp/
            * semantics.cc (finish_omp_target_clauses_r): Strip location
            wrappers while looking for the base of a lambda object.
            gcc/testsuite/
            * g++.dg/gomp/target-lambda-3.C: Un-XFAIL.
            libgomp/
            * testsuite/libgomp.c++/target-lambda-6.C: Un-XFAIL.

Reply via email to