summaryrefslogtreecommitdiff
path: root/test/OpenMP/declare_reduction_ast_print.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/OpenMP/declare_reduction_ast_print.cpp')
-rw-r--r--test/OpenMP/declare_reduction_ast_print.cpp14
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);
}