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);
+}

Reply via email to