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.
