diff options
Diffstat (limited to 'libgomp/testsuite/libgomp.c++/target-lambda-4.C')
-rw-r--r-- | libgomp/testsuite/libgomp.c++/target-lambda-4.C | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.c++/target-lambda-4.C b/libgomp/testsuite/libgomp.c++/target-lambda-4.C new file mode 100644 index 0000000..4830cbc --- /dev/null +++ b/libgomp/testsuite/libgomp.c++/target-lambda-4.C @@ -0,0 +1,41 @@ +int +foo () +{ + int var = 42; + [&var] () { +#pragma omp target firstprivate(var) + { + var += 26; + if (var != 42 + 26) + __builtin_abort (); + } + } (); + return var; +} + + +template <typename T> +struct A { + A () : a(), b() + { + [&] () + { +#pragma omp target firstprivate (a) map (from: b) + b = ++a; + } (); + } + + T a, b; +}; + + +int +main () +{ + if (foo () != 42) + __builtin_abort (); + + A<int> x; + if (x.a != 0 || x.b != 1) + __builtin_abort (); +} |