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