openmp: Fix up finish_omp_target_clauses [PR108286]
authorJakub Jelinek <jakub@redhat.com>
Thu, 5 Jan 2023 10:57:30 +0000 (11:57 +0100)
committerJakub Jelinek <jakub@redhat.com>
Thu, 5 Jan 2023 10:57:30 +0000 (11:57 +0100)
commit29c3218618ef6177dc33871b26c8fbd9b21eabe1
tree0affb30a38270beec5af10756d87bc83e047db90
parent72ce780a497eb3e5efe7a79ea5f21f8dd6858f7f
openmp: Fix up finish_omp_target_clauses [PR108286]

The comment in the loop says that we shouldn't add a map clause if such
a clause exists already, but the loop was actually using OMP_CLAUSE_DECL
on any clause.  Target construct can have various clauses which don't
have OMP_CLAUSE_DECL at all (e.g. nowait, device or if) or clause
where it means something different (e.g. privatization clauses, allocate,
depend).

So, only check OMP_CLAUSE_DECL on OMP_CLAUSE_MAP clauses.

2023-01-05  Jakub Jelinek  <jakub@redhat.com>

PR c++/108286
* semantics.cc (finish_omp_target_clauses): Ignore clauses other than
OMP_CLAUSE_MAP.

* testsuite/libgomp.c++/pr108286.C: New test.
gcc/cp/semantics.cc
libgomp/testsuite/libgomp.c++/pr108286.C [new file with mode: 0644]