/* PR c++/88203 */ /* { dg-do compile } */ /* { dg-additional-options "-std=gnu99" { target c } } */ /* { dg-additional-options "-std=gnu++11" { target c++ } } */ void foo (const char *, const char *); #pragma omp declare target to (foo) void f1 (void) { #pragma omp parallel default(none) foo (__FUNCTION__, __PRETTY_FUNCTION__); } void f2 (void) { #pragma omp parallel default(none) shared(__FUNCTION__, __PRETTY_FUNCTION__) foo (__FUNCTION__, __PRETTY_FUNCTION__); #pragma omp parallel default(none) shared(__FUNCTION__) firstprivate(__PRETTY_FUNCTION__) foo (__FUNCTION__, __PRETTY_FUNCTION__); } void f3 (void) { #pragma omp parallel default(none) firstprivate(__FUNCTION__, __PRETTY_FUNCTION__) foo (__FUNCTION__, __PRETTY_FUNCTION__); #pragma omp parallel default(none) firstprivate(__FUNCTION__), shared(__PRETTY_FUNCTION__) foo (__FUNCTION__, __PRETTY_FUNCTION__); } void f4 (void) { foo (__FUNCTION__, __PRETTY_FUNCTION__); #pragma omp parallel default(none) foo (__FUNCTION__, __PRETTY_FUNCTION__); } void f5 (void) { foo (__FUNCTION__, __PRETTY_FUNCTION__); #pragma omp parallel default(none) shared(__FUNCTION__, __PRETTY_FUNCTION__) foo (__FUNCTION__, __PRETTY_FUNCTION__); } void f6 (void) { foo (__FUNCTION__, __PRETTY_FUNCTION__); #pragma omp parallel default(none) firstprivate(__FUNCTION__, __PRETTY_FUNCTION__) foo (__FUNCTION__, __PRETTY_FUNCTION__); } void f7 (void) { #pragma omp target map(to: __FUNCTION__, __PRETTY_FUNCTION__) foo (__FUNCTION__, __PRETTY_FUNCTION__); #pragma omp task depend(inout:__FUNCTION__, __PRETTY_FUNCTION__) foo (__FUNCTION__, __PRETTY_FUNCTION__); }