| // { dg-do run } |
| // { dg-require-effective-target offload_device_shared_as } |
| // { dg-additional-options "-Wno-deprecated-declarations" } |
| // { dg-additional-options "-Wno-deprecated-openmp" } |
| #include <stdlib.h> |
| |
| 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; |
| } |