I've had a task item to ensure that g++ accepts the standard C++ attribute syntax form for all (currently-implemented) OpenMP 5.1 directives, and that there are tests to verify this. I used some scripting to scan for existing testcases given a list of the directives, which I extracted from the reference card on the OpenMP web site. It looked to me that on mainline all the supported directives had tests already, but on OG13 I found that "metadirective", "declare mapper", and the loop transforms "tile" and "unroll" had no tests, and on further investigation all of them had bugs, too.
I didn't manually examine all the existing tests for other directives, BTW, but the ones I spot-checked seem to have good coverage. The new tests are mostly just adapted from a subset of existing pragma-syntax tests. -Sandra Sandra Loosemore (3): OpenMP: C++ attribute syntax fixes/testcases for "metadirective" OpenMP: C++ attribute syntax fixes/testcases for "declare mapper" OpenMP: C++ attribute syntax fixes/testcases for loop transformations gcc/c-family/ChangeLog.omp | 4 + gcc/c-family/c-omp.cc | 4 +- gcc/cp/ChangeLog.omp | 26 +++ gcc/cp/parser.cc | 87 ++++++--- gcc/testsuite/ChangeLog.omp | 30 +++ .../g++.dg/gomp/attrs-declare-mapper-3.C | 31 ++++ .../g++.dg/gomp/attrs-declare-mapper-4.C | 74 ++++++++ .../g++.dg/gomp/attrs-declare-mapper-5.C | 26 +++ .../g++.dg/gomp/attrs-declare-mapper-6.C | 22 +++ .../g++.dg/gomp/attrs-metadirective-1.C | 40 ++++ .../g++.dg/gomp/attrs-metadirective-2.C | 74 ++++++++ .../g++.dg/gomp/attrs-metadirective-3.C | 31 ++++ .../g++.dg/gomp/attrs-metadirective-4.C | 41 +++++ .../g++.dg/gomp/attrs-metadirective-5.C | 24 +++ .../g++.dg/gomp/attrs-metadirective-6.C | 31 ++++ .../g++.dg/gomp/attrs-metadirective-7.C | 31 ++++ .../g++.dg/gomp/attrs-metadirective-8.C | 16 ++ .../gomp/loop-transforms/attrs-tile-1.C | 164 +++++++++++++++++ .../gomp/loop-transforms/attrs-tile-2.C | 174 ++++++++++++++++++ .../gomp/loop-transforms/attrs-tile-3.C | 111 +++++++++++ .../gomp/loop-transforms/attrs-unroll-1.C | 135 ++++++++++++++ .../gomp/loop-transforms/attrs-unroll-2.C | 81 ++++++++ .../gomp/loop-transforms/attrs-unroll-3.C | 20 ++ .../loop-transforms/attrs-unroll-inner-1.C | 15 ++ .../loop-transforms/attrs-unroll-inner-2.C | 29 +++ .../loop-transforms/attrs-unroll-inner-3.C | 71 +++++++ 26 files changed, 1366 insertions(+), 26 deletions(-) create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-declare-mapper-3.C create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-declare-mapper-4.C create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-declare-mapper-5.C create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-declare-mapper-6.C create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-metadirective-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-metadirective-2.C create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-metadirective-3.C create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-metadirective-4.C create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-metadirective-5.C create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-metadirective-6.C create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-metadirective-7.C create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-metadirective-8.C create mode 100644 gcc/testsuite/g++.dg/gomp/loop-transforms/attrs-tile-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/loop-transforms/attrs-tile-2.C create mode 100644 gcc/testsuite/g++.dg/gomp/loop-transforms/attrs-tile-3.C create mode 100644 gcc/testsuite/g++.dg/gomp/loop-transforms/attrs-unroll-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/loop-transforms/attrs-unroll-2.C create mode 100644 gcc/testsuite/g++.dg/gomp/loop-transforms/attrs-unroll-3.C create mode 100644 gcc/testsuite/g++.dg/gomp/loop-transforms/attrs-unroll-inner-1.C create mode 100644 gcc/testsuite/g++.dg/gomp/loop-transforms/attrs-unroll-inner-2.C create mode 100644 gcc/testsuite/g++.dg/gomp/loop-transforms/attrs-unroll-inner-3.C -- 2.31.1