This patch series builds on top of the previously-posted series: "Topological sort for OpenMP 5.0 base pointers" https://gcc.gnu.org/pipermail/gcc-patches/2021-August/577211.html
and: "OpenMP: Deep struct dereferences" https://gcc.gnu.org/pipermail/gcc-patches/2021-October/580721.html To add support for parsing general lvalues in "map" clauses in both C and C++. A new "address inspector" class is introduced in order to unify address analyses from several places in the C/C++ front-ends which had some level of duplication. Tested with offloading to NVPTX, and bootstrapped. OK? Julian Brown (4): Add debug_omp_expr OpenMP: Add inspector class to unify mapped address analysis OpenMP: lvalue parsing for map clauses (C++) OpenMP: lvalue parsing for map clauses (C) gcc/c-family/c-common.h | 44 +++ gcc/c-family/c-omp.c | 172 ++++++++++- gcc/c/c-parser.c | 150 ++++++++-- gcc/c/c-tree.h | 1 + gcc/c/c-typeck.c | 232 +++++---------- gcc/cp/error.c | 9 + gcc/cp/parser.c | 141 ++++++++- gcc/cp/parser.h | 3 + gcc/cp/semantics.c | 278 +++++++----------- gcc/gimplify.c | 37 ++- gcc/testsuite/c-c++-common/gomp/map-1.c | 3 +- gcc/testsuite/c-c++-common/gomp/map-6.c | 6 +- gcc/testsuite/g++.dg/gomp/pr67522.C | 2 +- .../g++.dg/gomp/unmappable-component-1.C | 21 ++ gcc/tree-pretty-print.c | 45 +++ gcc/tree-pretty-print.h | 1 + gcc/tree.def | 3 + libgomp/testsuite/libgomp.c++/ind-base-1.C | 162 ++++++++++ libgomp/testsuite/libgomp.c++/ind-base-2.C | 49 +++ libgomp/testsuite/libgomp.c++/struct-ref-1.C | 97 ++++++ 20 files changed, 1088 insertions(+), 368 deletions(-) create mode 100644 gcc/testsuite/g++.dg/gomp/unmappable-component-1.C create mode 100644 libgomp/testsuite/libgomp.c++/ind-base-1.C create mode 100644 libgomp/testsuite/libgomp.c++/ind-base-2.C create mode 100644 libgomp/testsuite/libgomp.c++/struct-ref-1.C -- 2.29.2