diff options
Diffstat (limited to 'test/OpenMP/declare_reduction_ast_print.cpp')
-rw-r--r-- | test/OpenMP/declare_reduction_ast_print.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/OpenMP/declare_reduction_ast_print.cpp b/test/OpenMP/declare_reduction_ast_print.cpp index a8ca529c456b0..6344394cfdbf9 100644 --- a/test/OpenMP/declare_reduction_ast_print.cpp +++ b/test/OpenMP/declare_reduction_ast_print.cpp @@ -10,6 +10,15 @@ #ifndef HEADER #define HEADER +template <typename T> +void bar(T &x, T &y) { x.a += y.a; } + +namespace N1 +{ + struct A { int a; A() : a(0) {} }; + #pragma omp declare reduction(+: A : bar(omp_out, omp_in)) +}; + #pragma omp declare reduction(+ : int, char : omp_out *= omp_in) // CHECK: #pragma omp declare reduction (+ : int : omp_out *= omp_in){{$}} // CHECK-NEXT: #pragma omp declare reduction (+ : char : omp_out *= omp_in) @@ -66,6 +75,11 @@ int main() { // TODO-CHECK: #pragma omp parallel reduction(::fun: sss) { } + N1::A a; + // CHECK: #pragma omp parallel reduction(+: a) + #pragma omp parallel reduction(+: a) + { + } return foo(15); } |