target-same-name-1-b.c 956 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /* { dg-skip-if "" { *-*-* } } */
  2. /* Used by target-same-name-1.c */
  3. static int local_link = 55;
  4. #pragma omp declare target link(local_link)
  5. extern int decl_a_link;
  6. #pragma omp declare target link(decl_a_link)
  7. #pragma omp declare target
  8. static int __attribute__ ((noinline,noclone))
  9. foo ()
  10. {
  11. return 7;
  12. }
  13. #pragma omp end declare target
  14. static int __attribute__ ((noinline,noclone))
  15. bar ()
  16. {
  17. int i;
  18. #pragma omp target map(from:i)
  19. i = foo ();
  20. return i;
  21. }
  22. int
  23. two () {
  24. return bar ();
  25. }
  26. int
  27. two_get_inc4_local_link ()
  28. {
  29. int res, res2;
  30. #pragma omp target map(from: res, res2)
  31. {
  32. res = local_link;
  33. local_link += 4;
  34. res2 = local_link;
  35. }
  36. if (res + 4 != res2)
  37. __builtin_abort ();
  38. return res;
  39. }
  40. int
  41. two_get_inc5_link_a ()
  42. {
  43. int res, res2;
  44. #pragma omp target map(from: res, res2)
  45. {
  46. res = decl_a_link;
  47. decl_a_link += 5;
  48. res2 = decl_a_link;
  49. }
  50. if (res + 5 != res2)
  51. __builtin_abort ();
  52. return res;
  53. }