pr70680-1.c 931 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /* PR middle-end/70680 */
  2. int v;
  3. void
  4. f1 (void)
  5. {
  6. int i = 0;
  7. #pragma omp task default(shared) if(0)
  8. {
  9. #pragma omp simd
  10. for (i = 0; i < 100; i++)
  11. ;
  12. v = i;
  13. }
  14. if (i != 100)
  15. __builtin_abort ();
  16. }
  17. void
  18. f2 (void)
  19. {
  20. int i = 0;
  21. #pragma omp task default(shared) if(0)
  22. {
  23. #pragma omp simd
  24. for (i = 0; i < 100; i++)
  25. ;
  26. }
  27. if (i != 100)
  28. __builtin_abort ();
  29. }
  30. void
  31. f3 (void)
  32. {
  33. int i = 0;
  34. #pragma omp task default(shared) if(0)
  35. {
  36. #pragma omp simd linear(i: 1)
  37. for (i = 0; i < 100; i++)
  38. ;
  39. v = i;
  40. }
  41. if (i != 100)
  42. __builtin_abort ();
  43. }
  44. void
  45. f4 (void)
  46. {
  47. int i = 0;
  48. #pragma omp task default(shared) if(0)
  49. {
  50. #pragma omp simd linear(i: 1)
  51. for (i = 0; i < 100; i++)
  52. ;
  53. }
  54. if (i != 100)
  55. __builtin_abort ();
  56. }
  57. int
  58. main ()
  59. {
  60. f1 ();
  61. if (v++ != 100)
  62. __builtin_abort ();
  63. f2 ();
  64. f3 ();
  65. if (v++ != 100)
  66. __builtin_abort ();
  67. f4 ();
  68. return 0;
  69. }