// { dg-do run } // { dg-require-effective-target offload_device_shared_as } #include struct typeX { int a; }; class typeY { public: int foo () { return a^0x01; } int a; }; #pragma omp declare target struct typeX varX; class typeY varY; #pragma omp end declare target int main () { varX.a = 0; varY.a = 0; #pragma omp target { varX.a = 100; varY.a = 100; } if (varX.a != 100 || varY.a != 100) abort (); return 0; }