| /* { dg-do run } */ | |
| /* { dg-options "-O1 -ftree-parallelize-loops=0" } */ | |
| /* { dg-additional-options "-flto" { target lto } } */ | |
| #include <stdlib.h> | |
| #define N 123456 | |
| #pragma omp declare target | |
| int X, Y; | |
| #pragma omp end declare target | |
| void | |
| foo () | |
| { | |
| #pragma omp target map(alloc: X) | |
| X = N; | |
| } | |
| int | |
| main () | |
| { | |
| int res; | |
| foo (); | |
| #pragma omp target map(alloc: X, Y) map(from: res) | |
| { | |
| Y = N; | |
| res = X + Y; | |
| } | |
| if (res != N + N) | |
| abort (); | |
| return 0; | |
| } |