debug-1.c 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. /* PR debug/36617 */
  2. /* { dg-do run } */
  3. /* { dg-options "-g -O0" } */
  4. int
  5. f1 (void)
  6. {
  7. int v1i, v1j, v1k, v1l = 0;
  8. v1i = 6;
  9. v1j = 8;
  10. #pragma omp parallel private (v1k) firstprivate (v1j) shared (v1i) reduction (+:v1l)
  11. {
  12. v1k = v1i + v1j;
  13. {
  14. int v1m = 1;
  15. v1l = v1m;
  16. }
  17. }
  18. return v1l;
  19. }
  20. int v2k = 9;
  21. int
  22. f2 (void)
  23. {
  24. int v2i = 6, v2j = 7;
  25. #pragma omp single private (v2i) firstprivate (v2k)
  26. {
  27. int v2l = v2j + v2k;
  28. v2i = 8;
  29. v2k = 10;
  30. v2j = v2l + v2i;
  31. }
  32. return v2i + v2j;
  33. }
  34. int
  35. f3 (void)
  36. {
  37. int v3i = 6, v3j = 7, v3k = 9;
  38. #pragma omp parallel
  39. {
  40. #pragma omp master
  41. v3i++;
  42. #pragma omp single private (v3i) firstprivate (v3k)
  43. {
  44. int v3l = v3j + v3k;
  45. v3i = 8;
  46. v3k = 10;
  47. v3j = v3l + v3i;
  48. }
  49. #pragma omp atomic
  50. v3k++;
  51. }
  52. return v3i + v3j;
  53. }
  54. int v4k = 9, v4l = 0;
  55. int
  56. f4 (void)
  57. {
  58. int v4i = 6, v4j = 7, v4n = 0;
  59. #pragma omp sections private (v4i) firstprivate (v4k) reduction (+:v4l)
  60. {
  61. #pragma omp section
  62. {
  63. int v4m = v4j + v4k;
  64. v4i = 8;
  65. v4k = 10;
  66. v4l++;
  67. v4n = v4m + v4i;
  68. }
  69. #pragma omp section
  70. {
  71. int v4o = v4j + v4k;
  72. v4i = 10;
  73. v4k = 11;
  74. v4l++;
  75. }
  76. }
  77. return v4i + v4j + v4l + v4n;
  78. }
  79. int
  80. f5 (void)
  81. {
  82. int v5i = 6, v5j = 7, v5k = 9, v5l = 0, v5n = 0, v5p = 0;
  83. #pragma omp parallel
  84. {
  85. #pragma omp master
  86. v5p++;
  87. #pragma omp sections private (v5i) firstprivate (v5k) reduction (+:v5l)
  88. {
  89. #pragma omp section
  90. {
  91. int v5m = v5j + v5k;
  92. v5i = 8;
  93. v5k = 10;
  94. v5l++;
  95. v5n = v5m + v5i;
  96. }
  97. #pragma omp section
  98. {
  99. int v5o = v5j + v5k;
  100. v5i = 10;
  101. v5k = 11;
  102. v5l++;
  103. }
  104. }
  105. }
  106. return v5i + v5j + v5l + v5n + v5p;
  107. }
  108. int v6k = 9, v6l = 0;
  109. int
  110. f6 (void)
  111. {
  112. int v6i = 6, v6j = 7, v6n = 0;
  113. #pragma omp for private (v6i) firstprivate (v6k) reduction (+:v6l)
  114. for (v6n = 0; v6n < 3; v6n++)
  115. {
  116. int v6m = v6j + v6k;
  117. v6i = 8;
  118. v6l++;
  119. }
  120. return v6i + v6j + v6k + v6l + v6n;
  121. }
  122. int
  123. f7 (void)
  124. {
  125. int v7i = 6, v7j = 7, v7k = 9, v7l = 0, v7n = 0, v7o = 1;
  126. #pragma omp parallel
  127. {
  128. #pragma omp master
  129. v7o++;
  130. #pragma omp for private (v7i) firstprivate (v7k) reduction (+:v7l)
  131. for (v7n = 0; v7n < 3; v7n++)
  132. {
  133. int v7m = v7j + v7k;
  134. v7i = 8;
  135. v7l++;
  136. }
  137. }
  138. return v7i + v7j + v7k + v7l + v7n;
  139. }
  140. int
  141. main (void)
  142. {
  143. f1 ();
  144. f2 ();
  145. f3 ();
  146. f4 ();
  147. f5 ();
  148. f6 ();
  149. f7 ();
  150. return 0;
  151. }