1*330d8983SJohannes Doerfert // RUN: %libomptarget-compileoptxx-run-and-check-generic 2*330d8983SJohannes Doerfert 3*330d8983SJohannes Doerfert #include <omp.h> 4*330d8983SJohannes Doerfert #include <stdio.h> 5*330d8983SJohannes Doerfert 6*330d8983SJohannes Doerfert #pragma omp declare target 7*330d8983SJohannes Doerfert class A { 8*330d8983SJohannes Doerfert public: 9*330d8983SJohannes Doerfert constexpr static double pi = 3.141592653589793116; A()10*330d8983SJohannes Doerfert A() { ; } ~A()11*330d8983SJohannes Doerfert ~A() { ; } 12*330d8983SJohannes Doerfert }; 13*330d8983SJohannes Doerfert #pragma omp end declare target 14*330d8983SJohannes Doerfert 15*330d8983SJohannes Doerfert #pragma omp declare target 16*330d8983SJohannes Doerfert constexpr static double anotherPi = 3.14; 17*330d8983SJohannes Doerfert #pragma omp end declare target 18*330d8983SJohannes Doerfert main()19*330d8983SJohannes Doerfertint main() { 20*330d8983SJohannes Doerfert double a[2]; 21*330d8983SJohannes Doerfert #pragma omp target map(tofrom : a[:2]) 22*330d8983SJohannes Doerfert { 23*330d8983SJohannes Doerfert a[0] = A::pi; 24*330d8983SJohannes Doerfert a[1] = anotherPi; 25*330d8983SJohannes Doerfert } 26*330d8983SJohannes Doerfert 27*330d8983SJohannes Doerfert // CHECK: pi = 3.141592653589793116 28*330d8983SJohannes Doerfert printf("pi = %.18f\n", a[0]); 29*330d8983SJohannes Doerfert 30*330d8983SJohannes Doerfert // CHECK: anotherPi = 3.14 31*330d8983SJohannes Doerfert printf("anotherPi = %.2f\n", a[1]); 32*330d8983SJohannes Doerfert 33*330d8983SJohannes Doerfert return 0; 34*330d8983SJohannes Doerfert } 35