target-9.c 485 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /* { dg-do run } */
  2. /* { dg-options "-O1 -ftree-parallelize-loops=0" } */
  3. /* { dg-additional-options "-flto" { target lto } } */
  4. #include <stdlib.h>
  5. #define N 123456
  6. #pragma omp declare target
  7. int X, Y;
  8. #pragma omp end declare target
  9. void
  10. foo ()
  11. {
  12. #pragma omp target map(alloc: X)
  13. X = N;
  14. }
  15. int
  16. main ()
  17. {
  18. int res;
  19. foo ();
  20. #pragma omp target map(alloc: X, Y) map(from: res)
  21. {
  22. Y = N;
  23. res = X + Y;
  24. }
  25. if (res != N + N)
  26. abort ();
  27. return 0;
  28. }