1*330d8983SJohannes Doerfert // RUN: %libomptarget-compilexx-generic && %libomptarget-run-generic | %fcheck-generic 2*330d8983SJohannes Doerfert 3*330d8983SJohannes Doerfert #include <cstdio> 4*330d8983SJohannes Doerfert foo()5*330d8983SJohannes Doerfertint foo() { return 1; } 6*330d8983SJohannes Doerfert 7*330d8983SJohannes Doerfert class C { 8*330d8983SJohannes Doerfert public: C()9*330d8983SJohannes Doerfert C() : x(foo()) {} 10*330d8983SJohannes Doerfert 11*330d8983SJohannes Doerfert int x; 12*330d8983SJohannes Doerfert }; 13*330d8983SJohannes Doerfert 14*330d8983SJohannes Doerfert C c; 15*330d8983SJohannes Doerfert #pragma omp declare target(c) 16*330d8983SJohannes Doerfert main()17*330d8983SJohannes Doerfertint main() { 18*330d8983SJohannes Doerfert int x = 0; 19*330d8983SJohannes Doerfert #pragma omp target map(from : x) 20*330d8983SJohannes Doerfert { x = c.x; } 21*330d8983SJohannes Doerfert 22*330d8983SJohannes Doerfert // CHECK: PASS 23*330d8983SJohannes Doerfert if (x == 1) 24*330d8983SJohannes Doerfert printf("PASS\n"); 25*330d8983SJohannes Doerfert } 26