https://gcc.gnu.org/g:9efd26e444bc1a256f30c19aa9615f22ce665c53
commit 9efd26e444bc1a256f30c19aa9615f22ce665c53 Author: Tobias Burnus <[email protected]> Date: Fri Jul 24 10:39:29 2026 +0200 OpenMP/C++: Handle OMP_CLAUSE_DEVICE_TYPE in pt.cc gcc/cp/ChangeLog: * pt.cc (tsubst_omp_clauses): Add OMP_CLAUSE_DEVICE_TYPE to switch statement. gcc/testsuite/ChangeLog: * g++.dg/gomp/target-device-type.C: New test. Diff: --- gcc/cp/pt.cc | 1 + gcc/testsuite/g++.dg/gomp/target-device-type.C | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc index d3ad51a9ba6c..1fb30d510c47 100644 --- a/gcc/cp/pt.cc +++ b/gcc/cp/pt.cc @@ -18976,6 +18976,7 @@ tsubst_omp_clauses (tree clauses, enum c_omp_region_type ort, break; case OMP_CLAUSE_NOWAIT: case OMP_CLAUSE_DEFAULT: + case OMP_CLAUSE_DEVICE_TYPE: case OMP_CLAUSE_UNTIED: case OMP_CLAUSE_MERGEABLE: case OMP_CLAUSE_INBRANCH: diff --git a/gcc/testsuite/g++.dg/gomp/target-device-type.C b/gcc/testsuite/g++.dg/gomp/target-device-type.C new file mode 100644 index 000000000000..dc2ba2d81992 --- /dev/null +++ b/gcc/testsuite/g++.dg/gomp/target-device-type.C @@ -0,0 +1,12 @@ +template <typename T> +int foo(T *x) +{ + int res; + #pragma omp target device_type(nohost) map(from:res) + res = x[0]; + return res; +} + +int f(int *y) { + return foo<int>(y); +}
