123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #ifdef __cplusplus
- extern "C"
- #else
- extern
- #endif
- void abort (void);
- struct S { int s, t; };
- void
- foo ()
- {
- int x = 5, y = 6, err = 0;
- struct S u = { 7, 8 }, v = { 9, 10 };
- double s = 11.5, t = 12.5;
- #pragma omp target private (x, u, s) firstprivate (y, v, t) map(from:err)
- {
- x = y;
- u = v;
- s = t;
- err = (x != 6 || y != 6
- || u.s != 9 || u.t != 10 || v.s != 9 || v.t != 10
- || s != 12.5 || t != 12.5);
- x += 1;
- y += 2;
- u.s += 3;
- v.t += 4;
- s += 2.5;
- t += 3.0;
- if (x != 7 || y != 8
- || u.s != 12 || u.t != 10 || v.s != 9 || v.t != 14
- || s != 15.0 || t != 15.5)
- err = 1;
- }
- if (err || x != 5 || y != 6
- || u.s != 7 || u.t != 8 || v.s != 9 || v.t != 10
- || s != 11.5 || t != 12.5)
- abort ();
- }
- int
- main ()
- {
- foo ();
- return 0;
- }
|