| // RUN: %libomptarget-compilexx-run-and-check-generic | |
| // REQUIRES: libc | |
| #include <stdio.h> | |
| #pragma omp begin declare target device_type(nohost) | |
| // CHECK: void ctor1() | |
| // CHECK: void ctor2() | |
| // CHECK: void ctor3() | |
| [[gnu::constructor(101)]] void ctor1() { puts(__PRETTY_FUNCTION__); } | |
| [[gnu::constructor(102)]] void ctor2() { puts(__PRETTY_FUNCTION__); } | |
| [[gnu::constructor(103)]] void ctor3() { puts(__PRETTY_FUNCTION__); } | |
| struct S { | |
| S() { puts(__PRETTY_FUNCTION__); } | |
| ~S() { puts(__PRETTY_FUNCTION__); } | |
| }; | |
| // CHECK: S::S() | |
| // CHECK: S::~S() | |
| S s; | |
| // CHECK: void dtor3() | |
| // CHECK: void dtor2() | |
| // CHECK: void dtor1() | |
| [[gnu::destructor(101)]] void dtor1() { puts(__PRETTY_FUNCTION__); } | |
| [[gnu::destructor(103)]] void dtor3() { puts(__PRETTY_FUNCTION__); } | |
| [[gnu::destructor(102)]] void dtor2() { puts(__PRETTY_FUNCTION__); } | |
| #pragma omp end declare target | |
| int main() { | |
| #pragma omp target | |
| ; | |
| } |