summaryrefslogtreecommitdiff
path: root/offload/test/offloading/target_constexpr_mapping.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'offload/test/offloading/target_constexpr_mapping.cpp')
-rw-r--r--offload/test/offloading/target_constexpr_mapping.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/offload/test/offloading/target_constexpr_mapping.cpp b/offload/test/offloading/target_constexpr_mapping.cpp
new file mode 100644
index 000000000000..14cf92a7cc26
--- /dev/null
+++ b/offload/test/offloading/target_constexpr_mapping.cpp
@@ -0,0 +1,34 @@
+// RUN: %libomptarget-compileoptxx-run-and-check-generic
+
+#include <omp.h>
+#include <stdio.h>
+
+#pragma omp declare target
+class A {
+public:
+ constexpr static double pi = 3.141592653589793116;
+ A() { ; }
+ ~A() { ; }
+};
+#pragma omp end declare target
+
+#pragma omp declare target
+constexpr static double anotherPi = 3.14;
+#pragma omp end declare target
+
+int main() {
+ double a[2];
+#pragma omp target map(tofrom : a[:2])
+ {
+ a[0] = A::pi;
+ a[1] = anotherPi;
+ }
+
+ // CHECK: pi = 3.141592653589793116
+ printf("pi = %.18f\n", a[0]);
+
+ // CHECK: anotherPi = 3.14
+ printf("anotherPi = %.2f\n", a[1]);
+
+ return 0;
+}