| 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 (); | |
| } |