From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id 42C5F3858D1E; Fri, 23 Dec 2022 12:13:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 42C5F3858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.96,268,1665475200"; d="scan'208";a="91397097" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa2.mentor.iphmx.com with ESMTP; 23 Dec 2022 04:13:14 -0800 IronPort-SDR: IBoV4kmEjqbvlKEg4YWkz9Alyr/8xxBKrirRjQabrECNVFBZjT9bwWYrhQE15dRREZxuQswDTf H89IWHIY9jMOVe5tsXTZ99c6+xfm25kgH3bb3HgnE3BCf1ZHZoTs7oXJ70J0ENAlUmkAg8qj1n F0Qk3Fz7QF/LqbB0ahw2BeoHQ/4RIqP/C1S20WEkN0TZeNgy1DAFbFaGSCrDX/9uVJmThuwxil jg5AEY/w2TO26q9l4A8fMGGa0JJry864FIAekCC6Y8mVGITSEArhR3ql9SkXf0G0s+PMCM/7yE cTw= From: Julian Brown To: CC: , Tobias Burnus , "Jakub Jelinek" , Thomas Schwinge Subject: [PATCH v6 00/11] OpenMP: C/C++ lvalue parsing, C/C++/Fortran "declare mapper" support Date: Fri, 23 Dec 2022 04:12:53 -0800 Message-ID: X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) To svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) X-Spam-Status: No, score=-5.7 required=5.0 tests=BAYES_00,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Following on from here: https://gcc.gnu.org/pipermail/gcc-patches/2022-December/608577.html this is a complete patch series, rebased against mainline. The final three patches are the revised C "lvalue"-parsing patches and C and Fortran "declare mapper" support patches mentioned in that email. (Several of the earlier patches are approved already, but dependent or semi-dependent on other patches that haven't been yet.) The last three patches have been retested (each, cumulatively) with offloading to NVPTX. OK? Thanks, Julian Julian Brown (11): OpenMP/OpenACC: Reindent TO/FROM/_CACHE_ stanza in {c_}finish_omp_clause OpenMP/OpenACC: Rework clause expansion and nested struct handling OpenMP/OpenACC: Refine condition for when map clause expansion happens OpenMP: implicitly map base pointer for array-section pointer components OpenMP: Pointers and member mappings OpenMP/OpenACC: Unordered/non-constant component offset runtime diagnostic OpenMP: lvalue parsing for map/to/from clauses (C++) OpenMP: C++ "declare mapper" support OpenMP: lvalue parsing for map clauses (C) OpenMP: Support OpenMP 5.0 "declare mapper" directives for C OpenMP: Fortran "!$omp declare mapper" support gcc/c-family/c-common.h | 77 +- gcc/c-family/c-omp.cc | 1153 +++++- gcc/c-family/c-pretty-print.cc | 12 + gcc/c/c-decl.cc | 169 + gcc/c/c-objc-common.h | 12 + gcc/c/c-parser.cc | 479 ++- gcc/c/c-tree.h | 10 + gcc/c/c-typeck.cc | 865 ++--- gcc/cp/constexpr.cc | 10 + gcc/cp/cp-gimplify.cc | 6 + gcc/cp/cp-objcp-common.h | 9 + gcc/cp/cp-tree.h | 19 +- gcc/cp/decl.cc | 27 +- gcc/cp/decl2.cc | 54 +- gcc/cp/error.cc | 34 + gcc/cp/parser.cc | 508 ++- gcc/cp/parser.h | 3 + gcc/cp/pt.cc | 82 +- gcc/cp/semantics.cc | 1277 ++++--- gcc/cp/typeck.cc | 50 + gcc/fortran/dependency.cc | 128 + gcc/fortran/dependency.h | 1 + gcc/fortran/dump-parse-tree.cc | 3 + gcc/fortran/f95-lang.cc | 7 + gcc/fortran/gfortran.h | 56 +- gcc/fortran/match.cc | 9 +- gcc/fortran/match.h | 1 + gcc/fortran/module.cc | 252 +- gcc/fortran/openmp.cc | 299 +- gcc/fortran/parse.cc | 15 +- gcc/fortran/resolve.cc | 2 + gcc/fortran/st.cc | 2 +- gcc/fortran/symbol.cc | 16 + gcc/fortran/trans-decl.cc | 30 +- gcc/fortran/trans-openmp.cc | 939 ++++- gcc/fortran/trans-stmt.h | 1 + gcc/fortran/trans.h | 3 + gcc/gimplify.cc | 2314 +++++++++--- gcc/langhooks-def.h | 13 + gcc/langhooks.cc | 35 + gcc/langhooks.h | 16 + gcc/omp-general.cc | 425 +++ gcc/omp-general.h | 155 + gcc/omp-low.cc | 8 +- gcc/testsuite/c-c++-common/gomp/clauses-2.c | 2 +- .../c-c++-common/gomp/declare-mapper-12.c | 22 + .../c-c++-common/gomp/declare-mapper-3.c | 30 + .../c-c++-common/gomp/declare-mapper-4.c | 78 + .../c-c++-common/gomp/declare-mapper-5.c | 26 + .../c-c++-common/gomp/declare-mapper-6.c | 23 + .../c-c++-common/gomp/declare-mapper-7.c | 29 + .../c-c++-common/gomp/declare-mapper-8.c | 43 + .../c-c++-common/gomp/declare-mapper-9.c | 34 + gcc/testsuite/c-c++-common/gomp/map-6.c | 10 +- gcc/testsuite/c-c++-common/gomp/target-50.c | 2 +- .../c-c++-common/gomp/target-implicit-map-2.c | 3 +- gcc/testsuite/g++.dg/gomp/array-section-1.C | 38 + gcc/testsuite/g++.dg/gomp/array-section-2.C | 63 + .../g++.dg/gomp/bad-array-section-1.C | 35 + .../g++.dg/gomp/bad-array-section-10.C | 35 + .../g++.dg/gomp/bad-array-section-11.C | 36 + .../g++.dg/gomp/bad-array-section-2.C | 33 + .../g++.dg/gomp/bad-array-section-3.C | 28 + .../g++.dg/gomp/bad-array-section-4.C | 50 + .../g++.dg/gomp/bad-array-section-5.C | 50 + .../g++.dg/gomp/bad-array-section-6.C | 24 + .../g++.dg/gomp/bad-array-section-7.C | 36 + .../g++.dg/gomp/bad-array-section-8.C | 53 + .../g++.dg/gomp/bad-array-section-9.C | 39 + gcc/testsuite/g++.dg/gomp/declare-mapper-1.C | 58 + gcc/testsuite/g++.dg/gomp/declare-mapper-2.C | 30 + .../gomp/has_device_addr-non-lvalue-1.C | 36 + gcc/testsuite/g++.dg/gomp/ind-base-3.C | 37 + gcc/testsuite/g++.dg/gomp/map-assignment-1.C | 12 + gcc/testsuite/g++.dg/gomp/map-inc-1.C | 10 + gcc/testsuite/g++.dg/gomp/map-lvalue-ref-1.C | 19 + gcc/testsuite/g++.dg/gomp/map-ptrmem-1.C | 37 + gcc/testsuite/g++.dg/gomp/map-ptrmem-2.C | 40 + .../g++.dg/gomp/map-static-cast-lvalue-1.C | 17 + gcc/testsuite/g++.dg/gomp/map-ternary-1.C | 20 + gcc/testsuite/g++.dg/gomp/member-array-2.C | 91 + gcc/testsuite/g++.dg/gomp/pr67522.C | 2 +- .../g++.dg/gomp/static-component-1.C | 23 + .../gcc.dg/gomp/bad-array-section-c-1.c | 16 + .../gcc.dg/gomp/bad-array-section-c-2.c | 13 + .../gcc.dg/gomp/bad-array-section-c-3.c | 24 + .../gcc.dg/gomp/bad-array-section-c-4.c | 26 + .../gcc.dg/gomp/bad-array-section-c-5.c | 15 + .../gcc.dg/gomp/bad-array-section-c-6.c | 16 + .../gcc.dg/gomp/bad-array-section-c-7.c | 26 + .../gcc.dg/gomp/bad-array-section-c-8.c | 21 + gcc/testsuite/gcc.dg/gomp/declare-mapper-10.c | 61 + gcc/testsuite/gcc.dg/gomp/declare-mapper-11.c | 33 + gcc/testsuite/gcc.dg/gomp/target-3.c | 2 +- .../gfortran.dg/gomp/declare-mapper-1.f90 | 71 + .../gfortran.dg/gomp/declare-mapper-14.f90 | 26 + .../gfortran.dg/gomp/declare-mapper-16.f90 | 22 + .../gfortran.dg/gomp/declare-mapper-5.f90 | 45 + .../gfortran.dg/gomp/map-subarray-2.f90 | 57 + .../gfortran.dg/gomp/map-subarray.f90 | 40 + gcc/tree-core.h | 4 + gcc/tree-pretty-print.cc | 61 + gcc/tree.cc | 2 + gcc/tree.def | 10 + gcc/tree.h | 23 + include/gomp-constants.h | 17 +- libgomp/oacc-mem.c | 6 +- libgomp/target.c | 91 +- libgomp/testsuite/libgomp.c++/baseptrs-3.C | 275 ++ libgomp/testsuite/libgomp.c++/baseptrs-4.C | 3148 ++++++++++++++++ libgomp/testsuite/libgomp.c++/baseptrs-5.C | 62 + libgomp/testsuite/libgomp.c++/baseptrs-6.C | 3199 +++++++++++++++++ libgomp/testsuite/libgomp.c++/class-array-1.C | 59 + .../testsuite/libgomp.c++/declare-mapper-1.C | 87 + .../testsuite/libgomp.c++/declare-mapper-2.C | 55 + .../testsuite/libgomp.c++/declare-mapper-3.C | 63 + .../testsuite/libgomp.c++/declare-mapper-4.C | 63 + .../testsuite/libgomp.c++/declare-mapper-5.C | 52 + .../testsuite/libgomp.c++/declare-mapper-6.C | 37 + .../testsuite/libgomp.c++/declare-mapper-7.C | 48 + .../testsuite/libgomp.c++/declare-mapper-8.C | 61 + libgomp/testsuite/libgomp.c++/ind-base-1.C | 162 + libgomp/testsuite/libgomp.c++/ind-base-2.C | 93 + .../testsuite/libgomp.c++/lvalue-tofrom-1.C | 75 + .../testsuite/libgomp.c++/lvalue-tofrom-2.C | 71 + libgomp/testsuite/libgomp.c++/map-comma-1.C | 15 + .../testsuite/libgomp.c++/map-rvalue-ref-1.C | 22 + libgomp/testsuite/libgomp.c++/struct-ref-1.C | 97 + libgomp/testsuite/libgomp.c++/target-48.C | 32 + libgomp/testsuite/libgomp.c++/target-49.C | 37 + .../libgomp.c-c++-common/array-field-1.c | 35 + .../libgomp.c-c++-common/array-of-struct-1.c | 65 + .../libgomp.c-c++-common/array-of-struct-2.c | 65 + .../libgomp.c-c++-common/baseptrs-1.c | 50 + .../libgomp.c-c++-common/baseptrs-2.c | 70 + .../libgomp.c-c++-common/declare-mapper-10.c | 60 + .../libgomp.c-c++-common/declare-mapper-11.c | 59 + .../libgomp.c-c++-common/declare-mapper-12.c | 87 + .../libgomp.c-c++-common/declare-mapper-13.c | 55 + .../libgomp.c-c++-common/declare-mapper-14.c | 57 + .../libgomp.c-c++-common/declare-mapper-9.c | 62 + .../libgomp.c-c++-common/ind-base-4.c | 50 + .../map-arrayofstruct-1.c | 38 + .../map-arrayofstruct-2.c | 58 + .../map-arrayofstruct-3.c | 68 + .../target-implicit-map-2.c | 2 + .../target-implicit-map-3.c | 50 + .../libgomp.c-c++-common/target-map-zlas-1.c | 36 + .../libgomp.c-c++-common/unary-ptr-1.c | 16 + .../libgomp.fortran/declare-mapper-10.f90 | 40 + .../libgomp.fortran/declare-mapper-11.f90 | 38 + .../libgomp.fortran/declare-mapper-12.f90 | 33 + .../libgomp.fortran/declare-mapper-13.f90 | 49 + .../libgomp.fortran/declare-mapper-15.f90 | 24 + .../libgomp.fortran/declare-mapper-17.f90 | 92 + .../libgomp.fortran/declare-mapper-18.f90 | 46 + .../libgomp.fortran/declare-mapper-19.f90 | 29 + .../libgomp.fortran/declare-mapper-2.f90 | 32 + .../libgomp.fortran/declare-mapper-20.f90 | 29 + .../libgomp.fortran/declare-mapper-3.f90 | 33 + .../libgomp.fortran/declare-mapper-4.f90 | 36 + .../libgomp.fortran/declare-mapper-6.f90 | 28 + .../libgomp.fortran/declare-mapper-7.f90 | 29 + .../libgomp.fortran/declare-mapper-8.f90 | 115 + .../libgomp.fortran/declare-mapper-9.f90 | 27 + .../libgomp.fortran/map-subarray-2.f90 | 108 + .../libgomp.fortran/map-subarray-3.f90 | 62 + .../libgomp.fortran/map-subarray-4.f90 | 35 + .../libgomp.fortran/map-subarray-5.f90 | 54 + .../libgomp.fortran/map-subarray-6.f90 | 26 + .../libgomp.fortran/map-subarray-7.f90 | 29 + .../libgomp.fortran/map-subarray-8.f90 | 47 + .../libgomp.fortran/map-subarray.f90 | 33 + .../libgomp.fortran/map-subcomponents.f90 | 32 + .../libgomp.fortran/struct-elem-map-1.f90 | 180 + 175 files changed, 20002 insertions(+), 1648 deletions(-) create mode 100644 gcc/testsuite/c-c++-common/gomp/declare-mapper-12.c create mode 100644 gcc/testsuite/c-c++-common/gomp/declare-mapper-3.c create mode 100644 gcc/testsuite/c-c++-common/gomp/declare-mapper-4.c create mode 100644 gcc/testsuite/c-c++-common/gomp/declare-mapper-5.c create mode 100644 gcc/testsuite/c-c++-common/gomp/declare-mapper-6.c create mode 100644 gcc/testsuite/c-c++-common/gomp/declare-mapper-7.c create mode 100644 gcc/testsuite/c-c++-common/gomp/declare-mapper-8.c create mode 100644 gcc/testsuite/c-c++-common/gomp/declare-mapper-9.c create mode 100644 gcc/testsuite/g++.dg/gomp/array-section-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/array-section-2.C create mode 100644 gcc/testsuite/g++.dg/gomp/bad-array-section-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/bad-array-section-10.C create mode 100644 gcc/testsuite/g++.dg/gomp/bad-array-section-11.C create mode 100644 gcc/testsuite/g++.dg/gomp/bad-array-section-2.C create mode 100644 gcc/testsuite/g++.dg/gomp/bad-array-section-3.C create mode 100644 gcc/testsuite/g++.dg/gomp/bad-array-section-4.C create mode 100644 gcc/testsuite/g++.dg/gomp/bad-array-section-5.C create mode 100644 gcc/testsuite/g++.dg/gomp/bad-array-section-6.C create mode 100644 gcc/testsuite/g++.dg/gomp/bad-array-section-7.C create mode 100644 gcc/testsuite/g++.dg/gomp/bad-array-section-8.C create mode 100644 gcc/testsuite/g++.dg/gomp/bad-array-section-9.C create mode 100644 gcc/testsuite/g++.dg/gomp/declare-mapper-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/declare-mapper-2.C create mode 100644 gcc/testsuite/g++.dg/gomp/has_device_addr-non-lvalue-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/ind-base-3.C create mode 100644 gcc/testsuite/g++.dg/gomp/map-assignment-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/map-inc-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/map-lvalue-ref-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/map-ptrmem-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/map-ptrmem-2.C create mode 100644 gcc/testsuite/g++.dg/gomp/map-static-cast-lvalue-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/map-ternary-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/member-array-2.C create mode 100644 gcc/testsuite/g++.dg/gomp/static-component-1.C create mode 100644 gcc/testsuite/gcc.dg/gomp/bad-array-section-c-1.c create mode 100644 gcc/testsuite/gcc.dg/gomp/bad-array-section-c-2.c create mode 100644 gcc/testsuite/gcc.dg/gomp/bad-array-section-c-3.c create mode 100644 gcc/testsuite/gcc.dg/gomp/bad-array-section-c-4.c create mode 100644 gcc/testsuite/gcc.dg/gomp/bad-array-section-c-5.c create mode 100644 gcc/testsuite/gcc.dg/gomp/bad-array-section-c-6.c create mode 100644 gcc/testsuite/gcc.dg/gomp/bad-array-section-c-7.c create mode 100644 gcc/testsuite/gcc.dg/gomp/bad-array-section-c-8.c create mode 100644 gcc/testsuite/gcc.dg/gomp/declare-mapper-10.c create mode 100644 gcc/testsuite/gcc.dg/gomp/declare-mapper-11.c create mode 100644 gcc/testsuite/gfortran.dg/gomp/declare-mapper-1.f90 create mode 100644 gcc/testsuite/gfortran.dg/gomp/declare-mapper-14.f90 create mode 100644 gcc/testsuite/gfortran.dg/gomp/declare-mapper-16.f90 create mode 100644 gcc/testsuite/gfortran.dg/gomp/declare-mapper-5.f90 create mode 100644 gcc/testsuite/gfortran.dg/gomp/map-subarray-2.f90 create mode 100644 gcc/testsuite/gfortran.dg/gomp/map-subarray.f90 create mode 100644 libgomp/testsuite/libgomp.c++/baseptrs-3.C create mode 100644 libgomp/testsuite/libgomp.c++/baseptrs-4.C create mode 100644 libgomp/testsuite/libgomp.c++/baseptrs-5.C create mode 100644 libgomp/testsuite/libgomp.c++/baseptrs-6.C create mode 100644 libgomp/testsuite/libgomp.c++/class-array-1.C create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-1.C create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-2.C create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-3.C create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-4.C create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-5.C create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-6.C create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-7.C create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-8.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++/lvalue-tofrom-1.C create mode 100644 libgomp/testsuite/libgomp.c++/lvalue-tofrom-2.C create mode 100644 libgomp/testsuite/libgomp.c++/map-comma-1.C create mode 100644 libgomp/testsuite/libgomp.c++/map-rvalue-ref-1.C create mode 100644 libgomp/testsuite/libgomp.c++/struct-ref-1.C create mode 100644 libgomp/testsuite/libgomp.c++/target-48.C create mode 100644 libgomp/testsuite/libgomp.c++/target-49.C create mode 100644 libgomp/testsuite/libgomp.c-c++-common/array-field-1.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/array-of-struct-1.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/array-of-struct-2.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/baseptrs-1.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/baseptrs-2.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/declare-mapper-10.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/declare-mapper-11.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/declare-mapper-12.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/declare-mapper-13.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/declare-mapper-14.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/declare-mapper-9.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/ind-base-4.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-1.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-2.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-3.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-3.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/target-map-zlas-1.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/unary-ptr-1.c create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-10.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-11.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-12.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-13.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-15.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-17.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-18.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-19.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-2.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-20.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-3.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-4.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-6.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-7.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-8.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/declare-mapper-9.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-2.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-3.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-4.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-5.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-6.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-7.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-8.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subcomponents.f90 -- 2.29.2