offtarget 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (886) hide show
  1. offload/__init__.py +10 -0
  2. offload/__main__.py +5 -0
  3. offload/_bundle.py +74 -0
  4. offload/_root/catalog/acc/claims.yaml +197 -0
  5. offload/_root/catalog/acc/clauses.yaml +391 -0
  6. offload/_root/catalog/acc/no_oracle.yaml +89 -0
  7. offload/_root/catalog/acc/out_of_scope.yaml +17 -0
  8. offload/_root/catalog/acc/rules.yaml +433 -0
  9. offload/_root/catalog/acc/semantic_atoms.yaml +27 -0
  10. offload/_root/catalog/acc/skeleton.yaml +1567 -0
  11. offload/_root/catalog/acc/spec_overrides.yaml +72 -0
  12. offload/_root/catalog/later_forms.yaml +76 -0
  13. offload/_root/catalog/machines.yaml +218 -0
  14. offload/_root/catalog/omp/claims.yaml +2047 -0
  15. offload/_root/catalog/omp/clauses.yaml +914 -0
  16. offload/_root/catalog/omp/derivations.yaml +177 -0
  17. offload/_root/catalog/omp/memory_modes.yaml +40 -0
  18. offload/_root/catalog/omp/no_oracle.yaml +373 -0
  19. offload/_root/catalog/omp/omp50_delta.yaml +377 -0
  20. offload/_root/catalog/omp/out_of_scope.yaml +64 -0
  21. offload/_root/catalog/omp/port_equivalence.yaml +352 -0
  22. offload/_root/catalog/omp/rules.yaml +3131 -0
  23. offload/_root/catalog/omp/rules_coverage.yaml +9939 -0
  24. offload/_root/catalog/omp/semantic_atoms.yaml +34 -0
  25. offload/_root/catalog/omp/skeleton.yaml +9181 -0
  26. offload/_root/catalog/omp/spec_overrides.yaml +932 -0
  27. offload/_root/catalog/toolchains.yaml +472 -0
  28. offload/_root/catalog/vendor_claims_generic.yaml +40925 -0
  29. offload/_root/data/canuse/b.json +1 -0
  30. offload/_root/data/canuse/c.json +1 -0
  31. offload/_root/data/canuse/columns.json +1 -0
  32. offload/_root/data/canuse/d.json +1 -0
  33. offload/_root/data/canuse/f.json +1 -0
  34. offload/_root/data/canuse/index.json +1 -0
  35. offload/_root/data/canuse/p.json +1 -0
  36. offload/_root/data/compilers/afar.json +1 -0
  37. offload/_root/data/compilers/cce19.json +1 -0
  38. offload/_root/data/compilers/cce20.json +1 -0
  39. offload/_root/data/compilers/cce21.json +1 -0
  40. offload/_root/data/compilers/cce21_4.json +1 -0
  41. offload/_root/data/compilers/gcc.json +1 -0
  42. offload/_root/data/compilers/gcc_sm80.json +1 -0
  43. offload/_root/data/compilers/nvhpc.json +1 -0
  44. offload/_root/data/compilers/nvhpc269.json +1 -0
  45. offload/_root/data/findings/AUTHORING.md +107 -0
  46. offload/_root/data/findings/README.md +33 -0
  47. offload/_root/data/findings/afar-c-error-directive-in-target-link.c +37 -0
  48. offload/_root/data/findings/afar-c-lastprivate-distribute-parallel-for-small-type.c +56 -0
  49. offload/_root/data/findings/afar-c-teams-distribute-reduction-first-team.c +59 -0
  50. offload/_root/data/findings/afar-c-update-iterator-copy-mode.c +45 -0
  51. offload/_root/data/findings/afar-c-xnack1-target-is-present.c +31 -0
  52. offload/_root/data/findings/afar-cce19-character-defaultmap.f90 +27 -0
  53. offload/_root/data/findings/afar-cce19-task-in-target-ice.f90 +23 -0
  54. offload/_root/data/findings/afar-clang-requires-device-safesync-hang.c +24 -0
  55. offload/_root/data/findings/afar-flang-firstprivate-map-two-targets.f90 +34 -0
  56. offload/_root/data/findings/afar-flang-loop-bind-teams-reduction.f90 +27 -0
  57. offload/_root/data/findings/afar-flang-task-reduction-max.f90 +31 -0
  58. offload/_root/data/findings/afar-flang-thread-limit-target-parallel-do.f90 +22 -0
  59. offload/_root/data/findings/afar-linear-ref-omp50.f90 +29 -0
  60. offload/_root/data/findings/afar-loop-bind-thread-in-teams.f90 +44 -0
  61. offload/_root/data/findings/afar-nontemporal-assumed-shape-ice.f90 +38 -0
  62. offload/_root/data/findings/afar-udr-derived-type-link.f90 +41 -0
  63. offload/_root/data/findings/afar-xnack1-atomic-min-nested-parallel.f90 +53 -0
  64. offload/_root/data/findings/afar-xnack1-present-not-enforced.f90 +36 -0
  65. offload/_root/data/findings/afar-xnack1-target-is-present.f90 +47 -0
  66. offload/_root/data/findings/apps/afar-cce-teams-private-array-nested-parallel-wrong.f90 +100 -0
  67. offload/_root/data/findings/apps/cce20-device-link-infer-address-spaces-crash.f90 +159 -0
  68. offload/_root/data/findings/apps/cce21-device-link-agpr-copy-mfma-assert.f90 +343 -0
  69. offload/_root/data/findings/apps/cce21-private-array-loaded-subscript-wrong.f90 +113 -0
  70. offload/_root/data/findings/apps/controls/bubble-simple-rddot.f90 +284 -0
  71. offload/_root/data/findings/apps/controls/bubble-two-substeps.f90 +287 -0
  72. offload/_root/data/findings/apps/controls/cbc-inline.f90 +97 -0
  73. offload/_root/data/findings/apps/controls/cbc-integers.f90 +91 -0
  74. offload/_root/data/findings/apps/controls/cbc-only-density.f90 +97 -0
  75. offload/_root/data/findings/apps/controls/cbc-only-velocity.f90 +97 -0
  76. offload/_root/data/findings/apps/controls/gcc-acc-c-tile-control.c +26 -0
  77. offload/_root/data/findings/apps/controls/gcc-acc-tile-control.f90 +29 -0
  78. offload/_root/data/findings/apps/controls/private-array-subscript-probes.f90 +45 -0
  79. offload/_root/data/findings/apps/controls/teams-private-array-read-par.f90 +31 -0
  80. offload/_root/data/findings/apps/controls/teams-private-array-seq.f90 +30 -0
  81. offload/_root/data/findings/apps/controls/teams-private-array-shared.f90 +34 -0
  82. offload/_root/data/findings/apps/controls/teams-private-array-split.f90 +36 -0
  83. offload/_root/data/findings/apps/controls/teams-private-array-write-par.f90 +31 -0
  84. offload/_root/data/findings/apps/gcc-acc-c-tile-partial-tiles-wrong.c +60 -0
  85. offload/_root/data/findings/apps/gcc-acc-tile-partial-tiles-wrong.f90 +64 -0
  86. offload/_root/data/findings/catalog/afar-c-complex-reduction-link.c +66 -0
  87. offload/_root/data/findings/catalog/afar-c-critical-hint-link.c +68 -0
  88. offload/_root/data/findings/catalog/afar-c-ordered-doacross-link.c +62 -0
  89. offload/_root/data/findings/catalog/afar-c-reduction-task-link.c +81 -0
  90. offload/_root/data/findings/catalog/afar-flang-absent-optional-target-crash.f90 +76 -0
  91. offload/_root/data/findings/catalog/afar-flang-critical-target-parallel-wrong.f90 +74 -0
  92. offload/_root/data/findings/catalog/afar-flang-dist-schedule-chunk.f90 +80 -0
  93. offload/_root/data/findings/catalog/afar-flang-linear-parallel-ice.f90 +68 -0
  94. offload/_root/data/findings/catalog/afar-flang-named-critical-link.f90 +67 -0
  95. offload/_root/data/findings/catalog/afar-flang-ordered-wrong.f90 +78 -0
  96. offload/_root/data/findings/catalog/afar-flang-reduction-minus-rejected.f90 +77 -0
  97. offload/_root/data/findings/catalog/afar-flang-reduction-task-ice.f90 +68 -0
  98. offload/_root/data/findings/catalog/afar-flang-sections-in-target-ice.f90 +67 -0
  99. offload/_root/data/findings/catalog/afar-flang-workdistribute-ice.f90 +71 -0
  100. offload/_root/data/findings/catalog/c-allocate-const-mem-firstprivate-wrong.c +79 -0
  101. offload/_root/data/findings/catalog/cce-acc-allocate-in-compute-crash.f90 +65 -0
  102. offload/_root/data/findings/catalog/cce-acc-character-dummy-routine-ice.f90 +81 -0
  103. offload/_root/data/findings/catalog/cce-acc-loop-seq-in-routine-wrong.f90 +81 -0
  104. offload/_root/data/findings/catalog/cce-acc-stop-in-compute-crash.f90 +62 -0
  105. offload/_root/data/findings/catalog/cce-allocators-stack-ice.f90 +81 -0
  106. offload/_root/data/findings/catalog/cce-atomic-default-mem-order-acquire-release-rejected.f90 +61 -0
  107. offload/_root/data/findings/catalog/cce-c-allocate-align-link.c +83 -0
  108. offload/_root/data/findings/catalog/cce-c-allocate-allocator-modifier-rejected.c +77 -0
  109. offload/_root/data/findings/catalog/cce-c-device-type-directive-name-ice.c +70 -0
  110. offload/_root/data/findings/catalog/cce-c-dist-schedule-chunk.c +81 -0
  111. offload/_root/data/findings/catalog/cce-c-f-pointer-device-link.f90 +70 -0
  112. offload/_root/data/findings/catalog/cce-c-lastprivate-parallel-in-seq-loop-wrong.c +64 -0
  113. offload/_root/data/findings/catalog/cce-c-long-double-ice.c +61 -0
  114. offload/_root/data/findings/catalog/cce-c-map-iterator-ice.c +92 -0
  115. offload/_root/data/findings/catalog/cce-c-motion-iterator-rejected.c +68 -0
  116. offload/_root/data/findings/catalog/cce-c-ordered-doacross-link.c +64 -0
  117. offload/_root/data/findings/catalog/cce-c-ordered-link.c +77 -0
  118. offload/_root/data/findings/catalog/cce-c-recursive-function-ice.c +62 -0
  119. offload/_root/data/findings/catalog/cce-c-reduction-inscan-ice.c +67 -0
  120. offload/_root/data/findings/catalog/cce-c-reduction-task-link.c +73 -0
  121. offload/_root/data/findings/catalog/cce-c-sections-in-target-wrong.c +70 -0
  122. offload/_root/data/findings/catalog/cce-c-single-masked-task-link.c +66 -0
  123. offload/_root/data/findings/catalog/cce-c-task-in-target-link.c +75 -0
  124. offload/_root/data/findings/catalog/cce-c-uses-allocators-traits-rejected.c +71 -0
  125. offload/_root/data/findings/catalog/cce-flang-allocate-const-mem-ice.f90 +67 -0
  126. offload/_root/data/findings/catalog/cce-flang-allocate-in-target-crash.f90 +68 -0
  127. offload/_root/data/findings/catalog/cce-flang-lastprivate-parallel-in-seq-loop-wrong.f90 +83 -0
  128. offload/_root/data/findings/catalog/cce-flang-stop-in-target-crash.f90 +64 -0
  129. offload/_root/data/findings/catalog/cce-iterator-link.f90 +67 -0
  130. offload/_root/data/findings/catalog/cce-linear-lastprivate-ice.f90 +69 -0
  131. offload/_root/data/findings/catalog/cce-nohost-link.f90 +90 -0
  132. offload/_root/data/findings/catalog/cce-reduction-inscan-ice.f90 +66 -0
  133. offload/_root/data/findings/catalog/cce-reduction-task-link.f90 +76 -0
  134. offload/_root/data/findings/catalog/cce19-reduction-task-addrspacecast-ice.f90 +77 -0
  135. offload/_root/data/findings/catalog/cce20-c-defaultmap-private-storage-rejected.c +85 -0
  136. offload/_root/data/findings/catalog/cce20-map-self-rejected.f90 +64 -0
  137. offload/_root/data/findings/catalog/cce21-c-declare-target-local-rejected.c +73 -0
  138. offload/_root/data/findings/catalog/cce21-c-target-loop-ice.c +77 -0
  139. offload/_root/data/findings/catalog/defaultmap-present-private-array-abort.f90 +73 -0
  140. offload/_root/data/findings/catalog/nvhpc-acc-associate-illegal-address.f90 +66 -0
  141. offload/_root/data/findings/catalog/nvhpc-c-function-pointer-kernel-missing.c +68 -0
  142. offload/_root/data/findings/catalog/nvhpc-c-long-double-kernel-missing.c +64 -0
  143. offload/_root/data/findings/catalog/nvhpc-c-static-local-kernel-missing.c +73 -0
  144. offload/_root/data/findings/catalog/nvhpc-c-vla-kernel-missing.c +63 -0
  145. offload/_root/data/findings/catalog/nvhpc-flang-type-bound-kernel-missing.f90 +86 -0
  146. offload/_root/data/findings/cce-acc-init-set-runtime-assert.f90 +35 -0
  147. offload/_root/data/findings/cce-acc-reduction-200-int8-scalars-wrong.f90 +1278 -0
  148. offload/_root/data/findings/cce-acc-routine-bind-module-ice.f90 +35 -0
  149. offload/_root/data/findings/cce-acc-self-condition-ignored.f90 +17 -0
  150. offload/_root/data/findings/cce-c-dist-schedule-segv.c +34 -0
  151. offload/_root/data/findings/cce-c-map-delete-refcount.c +47 -0
  152. offload/_root/data/findings/cce-c-map-present-assert.c +45 -0
  153. offload/_root/data/findings/cce-c-openmp45-device-link.c +34 -0
  154. offload/_root/data/findings/cce-c-parallel-for-in-target.c +73 -0
  155. offload/_root/data/findings/cce-defaultmap-tofrom-explicit-map.f90 +92 -0
  156. offload/_root/data/findings/cce-mapper-next-map-copy-back.f90 +48 -0
  157. offload/_root/data/findings/cce-trim-merge-output-one-character.f90 +40 -0
  158. offload/_root/data/findings/cce-uses-allocators-traits-omp50.f90 +28 -0
  159. offload/_root/data/findings/cce19-acc-if-false-link.f90 +17 -0
  160. offload/_root/data/findings/cce19-c-reduction-63-scalars-one-wrong.c +235 -0
  161. offload/_root/data/findings/cce19-target-parallel-guarded-loop.f90 +35 -0
  162. offload/_root/data/findings/cce19-target-parallel-single-ice.f90 +38 -0
  163. offload/_root/data/findings/cce21-alloc-2e32-sum-wrong.f90 +68 -0
  164. offload/_root/data/findings/cce21-defaultmap-aggregate-flag.f90 +52 -0
  165. offload/_root/data/findings/cce21-in-reduction-assumed-shape-write-lost.f90 +61 -0
  166. offload/_root/data/findings/cce21-in-reduction-taskwait-link.f90 +59 -0
  167. offload/_root/data/findings/cce21-linear-modifier-default-none.f90 +59 -0
  168. offload/_root/data/findings/clang-c-declare-target-to-omp52.c +50 -0
  169. offload/_root/data/findings/clang-c-linear-directive-name-hang.c +30 -0
  170. offload/_root/data/findings/clang-c-map-iterator-omp51.c +51 -0
  171. offload/_root/data/findings/clang-c-shared-declare-target-combined.c +58 -0
  172. offload/_root/data/findings/dataenv/cce-value-dummy-target-write-visible.f90 +74 -0
  173. offload/_root/data/findings/defaultmap-none-loop-variable.f90 +69 -0
  174. offload/_root/data/findings/fortran-loop-bind-thread-in-parallel.f90 +53 -0
  175. offload/_root/data/findings/fortran-schedule-static-in-target.f90 +55 -0
  176. offload/_root/data/findings/fresh/cce-common-block-name-in-map-rejected.f90 +47 -0
  177. offload/_root/data/findings/fresh/cce-if-stop-in-target-ice-one-condition.f90 +38 -0
  178. offload/_root/data/findings/fresh/cce-if-stop-in-target-ice.f90 +43 -0
  179. offload/_root/data/findings/fresh/cce-list-directed-print-in-target-copy-crash.f90 +40 -0
  180. offload/_root/data/findings/fresh/cce19-acc-automatic-array-copyout-copy-crash.f90 +56 -0
  181. offload/_root/data/findings/fresh/cce21-combined-if-runtime-expr-loop-skipped.f90 +57 -0
  182. offload/_root/data/findings/fresh/nvhpc-acc-gang-worker-collapse-nested-vector-reduction-lost.f90 +67 -0
  183. offload/_root/data/findings/fresh/nvhpc-teams-loop-module-allocatable-assign-fort2-crash.f90 +73 -0
  184. offload/_root/data/findings/fuzz/1131-afar.f90 +48 -0
  185. offload/_root/data/findings/fuzz/1391-cce20.f90 +40 -0
  186. offload/_root/data/findings/fuzz/14-cce20.f90 +36 -0
  187. offload/_root/data/findings/fuzz/1505-cce20.f90 +88 -0
  188. offload/_root/data/findings/fuzz/1540-afar.f90 +44 -0
  189. offload/_root/data/findings/fuzz/158-afar.f90 +63 -0
  190. offload/_root/data/findings/fuzz/16-cce20.f90 +39 -0
  191. offload/_root/data/findings/fuzz/1644-cce21.f90 +31 -0
  192. offload/_root/data/findings/fuzz/165-cce19.f90 +52 -0
  193. offload/_root/data/findings/fuzz/1749-cce20.f90 +34 -0
  194. offload/_root/data/findings/fuzz/1936-afar.f90 +61 -0
  195. offload/_root/data/findings/fuzz/1978-cce19.f90 +41 -0
  196. offload/_root/data/findings/fuzz/2014-cce19.f90 +46 -0
  197. offload/_root/data/findings/fuzz/2224-cce19.f90 +30 -0
  198. offload/_root/data/findings/fuzz/2334-cce19.f90 +57 -0
  199. offload/_root/data/findings/fuzz/536-cce19.f90 +38 -0
  200. offload/_root/data/findings/fuzz/591-cce19.f90 +54 -0
  201. offload/_root/data/findings/fuzz/650-afar.f90 +58 -0
  202. offload/_root/data/findings/fuzz/698-afar.f90 +68 -0
  203. offload/_root/data/findings/fuzz/700-afar.f90 +46 -0
  204. offload/_root/data/findings/fuzz/775-cce21.f90 +33 -0
  205. offload/_root/data/findings/fuzz/87-afar.f90 +47 -0
  206. offload/_root/data/findings/fuzz/916-afar.f90 +67 -0
  207. offload/_root/data/findings/fuzz/958-cce20.f90 +44 -0
  208. offload/_root/data/findings/fuzz/98-cce19.f90 +40 -0
  209. offload/_root/data/findings/fuzz/README.md +236 -0
  210. offload/_root/data/findings/fuzz/b1-121-afar.f90 +47 -0
  211. offload/_root/data/findings/fuzz/b1-183-afar.f90 +55 -0
  212. offload/_root/data/findings/fuzz/b1-22-cce20.f90 +38 -0
  213. offload/_root/data/findings/fuzz/b1-231-afar.f90 +56 -0
  214. offload/_root/data/findings/fuzz/b1-268-afar.f90 +46 -0
  215. offload/_root/data/findings/fuzz/b2-183-afar.f90 +57 -0
  216. offload/_root/data/findings/fuzz/b2-209-cce19.f90 +51 -0
  217. offload/_root/data/findings/fuzz/b2-213-afar.f90 +63 -0
  218. offload/_root/data/findings/fuzz/b2-52-afar.f90 +56 -0
  219. offload/_root/data/findings/fuzz/b2-68-afar.f90 +54 -0
  220. offload/_root/data/findings/fuzz/b2-85-cce20.f90 +55 -0
  221. offload/_root/data/findings/fuzz/b3-188-cce19.f90 +90 -0
  222. offload/_root/data/findings/fuzz/b3-190-cce21.f90 +88 -0
  223. offload/_root/data/findings/fuzz/b3-197-cce19.f90 +77 -0
  224. offload/_root/data/findings/fuzz/b3-250-cce20.f90 +89 -0
  225. offload/_root/data/findings/fuzz/b3-278-cce19.f90 +70 -0
  226. offload/_root/data/findings/fuzz/b3-45-cce21.f90 +83 -0
  227. offload/_root/data/findings/fuzz/b3-54-afar.f90 +67 -0
  228. offload/_root/data/findings/fuzz/b3-61-cce20.f90 +100 -0
  229. offload/_root/data/findings/fuzz/b3-9-afar.f90 +100 -0
  230. offload/_root/data/findings/fuzz/b3-9-cce21.f90 +103 -0
  231. offload/_root/data/findings/fuzz/b3-94-afar.f90 +80 -0
  232. offload/_root/data/findings/fuzz/b4-39-afar.f90 +141 -0
  233. offload/_root/data/findings/fuzz/b4-86-cce19.f90 +71 -0
  234. offload/_root/data/findings/fuzz/controls/gcc-complex-pointer-store-control.f90 +28 -0
  235. offload/_root/data/findings/fuzz/controls/gcc-declare-reduction-module-control.f90 +29 -0
  236. offload/_root/data/findings/fuzz/controls/gcc-target-simd-map-nontemporal-control.f90 +21 -0
  237. offload/_root/data/findings/fuzz/controls/nvhpc-allocatable-component-mapped-control.f90 +22 -0
  238. offload/_root/data/findings/fuzz/controls/nvhpc-allocatable-component-unreferenced-control.f90 +22 -0
  239. offload/_root/data/findings/fuzz/controls/nvhpc-default-none-removed-control.f90 +18 -0
  240. offload/_root/data/findings/fuzz/controls/nvhpc-default-shared-control.f90 +18 -0
  241. offload/_root/data/findings/fuzz/controls/nvhpc-defaultmap-firstprivate-removed-control.f90 +15 -0
  242. offload/_root/data/findings/fuzz/controls/nvhpc-defaultmap-to-scalar-reduction-mapped-control.f90 +17 -0
  243. offload/_root/data/findings/fuzz/controls/nvhpc-defaultmap-to-scalar-removed-control.f90 +17 -0
  244. offload/_root/data/findings/fuzz/controls/nvhpc-defaultmap-tofrom-lastprivate-control.f90 +15 -0
  245. offload/_root/data/findings/fuzz/controls/nvhpc-depend-explicit-map-control.f90 +22 -0
  246. offload/_root/data/findings/fuzz/controls/nvhpc-depend-removed-control.f90 +22 -0
  247. offload/_root/data/findings/fuzz/controls/nvhpc-distribute-end-distribute-control.f90 +16 -0
  248. offload/_root/data/findings/fuzz/controls/nvhpc-distribute-parallel-num-threads-removed-control.f90 +26 -0
  249. offload/_root/data/findings/fuzz/controls/nvhpc-distribute-parallel-removed-control.f90 +22 -0
  250. offload/_root/data/findings/fuzz/controls/nvhpc-distribute-simd-no-end-directive-control.f90 +15 -0
  251. offload/_root/data/findings/fuzz/controls/nvhpc-explicit-length-character-dummy-control.f90 +18 -0
  252. offload/_root/data/findings/fuzz/controls/nvhpc-loop-character-array-value-control.f90 +23 -0
  253. offload/_root/data/findings/fuzz/controls/nvhpc-loop-character-distribute-control.f90 +20 -0
  254. offload/_root/data/findings/fuzz/controls/nvhpc-map-always-first-control.f90 +15 -0
  255. offload/_root/data/findings/fuzz/controls/nvhpc-map-always-removed-control.f90 +15 -0
  256. offload/_root/data/findings/fuzz/controls/nvhpc-num-threads-removed-control.f90 +12 -0
  257. offload/_root/data/findings/fuzz/controls/nvhpc-target-parallel-firstprivate-dropped-control.f90 +15 -0
  258. offload/_root/data/findings/fuzz/controls/nvhpc-target-parallel-single-nowait-control.f90 +13 -0
  259. offload/_root/data/findings/fuzz/controls/nvhpc-target-parallel-split-control.f90 +15 -0
  260. offload/_root/data/findings/fuzz/controls/nvhpc-target-simd-collapse-split-control.f90 +21 -0
  261. offload/_root/data/findings/fuzz/controls/nvhpc-target-simd-end-directive-control.f90 +14 -0
  262. offload/_root/data/findings/fuzz/controls/nvhpc-target-simd-no-collapse-control.f90 +19 -0
  263. offload/_root/data/findings/fuzz/controls/nvhpc-target-simd-split-no-end-directive-control.f90 +15 -0
  264. offload/_root/data/findings/fuzz/gcc-declare-reduction-module-not-found.f90 +66 -0
  265. offload/_root/data/findings/fuzz/gcc-strided-target-update-rejected.f90 +58 -0
  266. offload/_root/data/findings/fuzz/gcc-target-simd-map-nontemporal-rejected.f90 +54 -0
  267. offload/_root/data/findings/fuzz/nvhpc-allocatable-component-implicit-map-illegal-address.f90 +84 -0
  268. offload/_root/data/findings/fuzz/nvhpc-assumed-length-character-dummy-map-ice.f90 +69 -0
  269. offload/_root/data/findings/fuzz/nvhpc-default-none-reduction-lastprivate-fort1-crash.f90 +70 -0
  270. offload/_root/data/findings/fuzz/nvhpc-defaultmap-firstprivate-lastprivate-ice.f90 +71 -0
  271. offload/_root/data/findings/fuzz/nvhpc-defaultmap-to-scalar-reduction-lost.f90 +82 -0
  272. offload/_root/data/findings/fuzz/nvhpc-depend-implicit-map-illegal-address.f90 +81 -0
  273. offload/_root/data/findings/fuzz/nvhpc-distribute-parallel-num-threads-writes-lost.f90 +79 -0
  274. offload/_root/data/findings/fuzz/nvhpc-end-distribute-simd-rejected.f90 +70 -0
  275. offload/_root/data/findings/fuzz/nvhpc-loop-character-achar-unsupported.f90 +75 -0
  276. offload/_root/data/findings/fuzz/nvhpc-map-always-after-map-to-not-copied-back.f90 +70 -0
  277. offload/_root/data/findings/fuzz/nvhpc-num-threads-reduction-identity-lost.f90 +54 -0
  278. offload/_root/data/findings/fuzz/nvhpc-target-parallel-firstprivate-translate-failure.f90 +66 -0
  279. offload/_root/data/findings/fuzz/nvhpc-target-parallel-single-hang.f90 +68 -0
  280. offload/_root/data/findings/fuzz/nvhpc-target-simd-collapse-translate-failure.f90 +73 -0
  281. offload/_root/data/findings/fuzz/nvhpc-target-simd-no-end-directive-rejected.f90 +68 -0
  282. offload/_root/data/findings/fuzz/par-s1-2082-gcc_g90.f90 +71 -0
  283. offload/_root/data/findings/fuzz/s1-2370-cce21.f90 +67 -0
  284. offload/_root/data/findings/fuzz/s1-2592-cce21.f90 +56 -0
  285. offload/_root/data/findings/fuzz/s1-3463-cce21.f90 +92 -0
  286. offload/_root/data/findings/fuzz/s1-4339-afar.f90 +79 -0
  287. offload/_root/data/findings/fuzz/s1-6085-cce21.f90 +96 -0
  288. offload/_root/data/findings/fuzz/s1-6760-cce20.f90 +65 -0
  289. offload/_root/data/findings/fuzz/s1-6888-cce21.f90 +76 -0
  290. offload/_root/data/findings/fuzz/s1-7882-cce20.f90 +63 -0
  291. offload/_root/data/findings/fuzz/s1-8634-cce21.f90 +45 -0
  292. offload/_root/data/findings/fuzz/s1-91-cce21.f90 +92 -0
  293. offload/_root/data/findings/fuzz/s1-9443-afar.f90 +59 -0
  294. offload/_root/data/findings/fuzz/s1-9914-cce19.f90 +78 -0
  295. offload/_root/data/findings/gcc/controls/gcc-acc-c-detach-control.c +34 -0
  296. offload/_root/data/findings/gcc/controls/gcc-acc-detach-control.f90 +26 -0
  297. offload/_root/data/findings/gcc/controls/gcc-defaultmap-to-pointer-control.f90 +31 -0
  298. offload/_root/data/findings/gcc/controls/gcc-target-in-task-control.c +26 -0
  299. offload/_root/data/findings/gcc/controls/gcc-target-in-task-control.f90 +21 -0
  300. offload/_root/data/findings/gcc/gcc-acc-bind-device-type-rejected.f90 +71 -0
  301. offload/_root/data/findings/gcc/gcc-acc-c-bind-device-type-rejected.c +76 -0
  302. offload/_root/data/findings/gcc/gcc-acc-c-detach-delete-attach-underflow.c +74 -0
  303. offload/_root/data/findings/gcc/gcc-acc-c-gang-dim-rejected.c +79 -0
  304. offload/_root/data/findings/gcc/gcc-acc-c-link-in-routine-rejected.c +82 -0
  305. offload/_root/data/findings/gcc/gcc-acc-detach-delete-attach-underflow.f90 +66 -0
  306. offload/_root/data/findings/gcc/gcc-acc-gang-dim-collapse-force-rejected.f90 +69 -0
  307. offload/_root/data/findings/gcc/gcc-acc-init-set-shutdown-rejected.f90 +70 -0
  308. offload/_root/data/findings/gcc/gcc-acc-link-in-routine-rejected.f90 +82 -0
  309. offload/_root/data/findings/gcc/gcc-acc-use-device-allocatable-rejected.f90 +88 -0
  310. offload/_root/data/findings/gcc/gcc-c-motion-mapper-rejected.c +110 -0
  311. offload/_root/data/findings/gcc/gcc-c-omp60-undocumented-rejected.c +76 -0
  312. offload/_root/data/findings/gcc/gcc-c-omp60-unimplemented-rejected.c +119 -0
  313. offload/_root/data/findings/gcc/gcc-c-target-in-task-mandatory-device-not-found.c +87 -0
  314. offload/_root/data/findings/gcc/gcc-c-uses-allocators-traits-unimplemented.c +85 -0
  315. offload/_root/data/findings/gcc/gcc-declare-mapper-rejected.f90 +85 -0
  316. offload/_root/data/findings/gcc/gcc-defaultmap-to-pointer-copy-back.f90 +66 -0
  317. offload/_root/data/findings/gcc/gcc-loop-bind-default-none-rejected.f90 +93 -0
  318. offload/_root/data/findings/gcc/gcc-omp60-undocumented-rejected.f90 +72 -0
  319. offload/_root/data/findings/gcc/gcc-omp60-unimplemented-rejected.f90 +112 -0
  320. offload/_root/data/findings/gcc/gcc-target-in-task-mandatory-device-not-found.f90 +83 -0
  321. offload/_root/data/findings/gcc/gcc-uses-allocators-traits-unimplemented.f90 +78 -0
  322. offload/_root/data/findings/harvest/afar-flang-strided-target-update.f90 +96 -0
  323. offload/_root/data/findings/harvest/cce-acc-declare-create-module-allocatable-xnack1-fault.f90 +58 -0
  324. offload/_root/data/findings/harvest/cce-c-implicit-struct-map-partly-present.c +100 -0
  325. offload/_root/data/findings/harvest/cce-c-strided-target-update.c +74 -0
  326. offload/_root/data/findings/harvest/cce-ftn-target-parallel-thread-query-ice.f90 +67 -0
  327. offload/_root/data/findings/harvest/cce-named-constant-array-declare-target-routine-rejected.f90 +69 -0
  328. offload/_root/data/findings/harvest/cce-use-device-ptr-c-ptr-not-converted.f90 +64 -0
  329. offload/_root/data/findings/harvest/cce21-declare-target-link-module-variable-write-lost.f90 +63 -0
  330. offload/_root/data/findings/harvest/cce21-internal-procedure-calls-internal-in-target-fault.f90 +71 -0
  331. offload/_root/data/findings/harvest/controls/cce-c-implicit-struct-map-partly-present-target-only-control.c +22 -0
  332. offload/_root/data/findings/harvest/controls/cce-c-implicit-struct-map-partly-present-whole-control.c +23 -0
  333. offload/_root/data/findings/harvest/controls/gcc-acc-declare-create-allocatable-control.f90 +34 -0
  334. offload/_root/data/findings/harvest/controls/gcc-c-same-item-two-maps-control.c +17 -0
  335. offload/_root/data/findings/harvest/controls/gcc-c-target-data-struct-pointer-section-control.c +27 -0
  336. offload/_root/data/findings/harvest/controls/gcc-c-target-data-two-maps-control.c +20 -0
  337. offload/_root/data/findings/harvest/controls/gcc-same-item-two-maps-control.f90 +16 -0
  338. offload/_root/data/findings/harvest/controls/gcc-teams-simd-matmul-allocatable-control.f90 +27 -0
  339. offload/_root/data/findings/harvest/gcc-acc-declare-create-allocatable-not-mapped.f90 +66 -0
  340. offload/_root/data/findings/harvest/gcc-c-same-item-two-maps-rejected.c +45 -0
  341. offload/_root/data/findings/harvest/gcc-c-strided-section-rejected.c +70 -0
  342. offload/_root/data/findings/harvest/gcc-c-target-data-struct-pointer-section-ice.c +78 -0
  343. offload/_root/data/findings/harvest/gcc-c-target-data-two-maps-ice.c +49 -0
  344. offload/_root/data/findings/harvest/gcc-same-item-two-maps-rejected.f90 +46 -0
  345. offload/_root/data/findings/harvest/gcc-teams-simd-matmul-allocatable-ice.f90 +53 -0
  346. offload/_root/data/findings/harvest/nvhpc-c-target-data-if-false-use-device-ptr-garbage.c +49 -0
  347. offload/_root/data/findings/harvest/nvhpc-named-constant-array-declare-target-routine-rejected.f90 +65 -0
  348. offload/_root/data/findings/harvest/nvhpc-use-device-ptr-c-ptr-not-found.f90 +60 -0
  349. offload/_root/data/findings/harvest/nvhpc2511-target-nowait-in-parallel-for-ice.c +59 -0
  350. offload/_root/data/findings/hecbench/controls/f16-ctl-float-array.c +28 -0
  351. offload/_root/data/findings/hecbench/controls/pc-ctl-builtin-popcount.c +37 -0
  352. offload/_root/data/findings/hecbench/controls/pc-ctl-shift-sum.c +43 -0
  353. offload/_root/data/findings/hecbench/gcc-c-float16-array-in-target-lto-ice.c +65 -0
  354. offload/_root/data/findings/hecbench/gcc-c-swar-popcount-assembler-error.c +80 -0
  355. offload/_root/data/findings/index.yaml +2453 -0
  356. offload/_root/data/findings/malloc/afar-device-malloc-in-kernel-corrupts-records.c +371 -0
  357. offload/_root/data/findings/malloc/controls/afar-first-use-malloc-direct.c +52 -0
  358. offload/_root/data/findings/malloc/controls/afar-first-use-malloc-fence.c +57 -0
  359. offload/_root/data/findings/malloc/controls/afar-first-use-malloc-flush.c +57 -0
  360. offload/_root/data/findings/malloc/controls/afar-first-use-malloc-stack.c +52 -0
  361. offload/_root/data/findings/multithread-allocatable-section-maps.f90 +91 -0
  362. offload/_root/data/findings/nested/afar-cce-c-call-result-member-in-target-rejected.c +69 -0
  363. offload/_root/data/findings/nested/afar-cce-c-update-struct-and-member-rejected.c +92 -0
  364. offload/_root/data/findings/nested/afar-flang-pointer-root-allocatable-component-enter-data-fault.f90 +121 -0
  365. offload/_root/data/findings/nested/cce-c-struct-and-nested-pointee-sections-ice.c +79 -0
  366. offload/_root/data/findings/nested/cce-fortran-nested-allocatable-component-copy-fault.f90 +64 -0
  367. offload/_root/data/findings/nested/cce-fortran-pointer-to-type-with-allocatable-scalar-component-typed-transfer.f90 +93 -0
  368. offload/_root/data/findings/nested/cce-fortran-update-to-pointer-root-allocatable-scalar-component-no-accelerator-object.f90 +80 -0
  369. offload/_root/data/findings/nested/controls/c3-ctl-nested-data.c +27 -0
  370. offload/_root/data/findings/nested/controls/c5-acc-serial-struct-and-array.c +26 -0
  371. offload/_root/data/findings/nested/controls/e2-ctl-two-directives.c +42 -0
  372. offload/_root/data/findings/nested/controls/e3-ctl-attach-clause.c +42 -0
  373. offload/_root/data/findings/nested/controls/f3-pointer-array-only.c +33 -0
  374. offload/_root/data/findings/nested/controls/f5-ctl-copyout-exit.c +33 -0
  375. offload/_root/data/findings/nested/controls/f6-ctl-pointer-to-struct-array.c +28 -0
  376. offload/_root/data/findings/nested/controls/g2-ctl-allocatable.f90 +34 -0
  377. offload/_root/data/findings/nested/controls/g2-ctl-entered-to.f90 +34 -0
  378. offload/_root/data/findings/nested/controls/g3-ctl-from-struct-no-element.c +27 -0
  379. offload/_root/data/findings/nested/controls/g3-ptrs-two-elements-to.c +27 -0
  380. offload/_root/data/findings/nested/controls/g3-ptrs-two-elements-tofrom.c +27 -0
  381. offload/_root/data/findings/nested/controls/g5-ctl-element-pointers-only.f90 +36 -0
  382. offload/_root/data/findings/nested/controls/g5-ctl-root-pointer-only.f90 +36 -0
  383. offload/_root/data/findings/nested/controls/gp2-ctl-no-mapper-explicit-maps.c +24 -0
  384. offload/_root/data/findings/nested/controls/gt2-ctl-no-always.c +26 -0
  385. offload/_root/data/findings/nested/controls/gt3-ctl-always-on-structure-only.c +26 -0
  386. offload/_root/data/findings/nested/controls/j1-embedded-struct-pointer-to-struct.c +24 -0
  387. offload/_root/data/findings/nested/controls/j2-ctl-pointer-instead-of-embedded.c +24 -0
  388. offload/_root/data/findings/nested/controls/j6-ctl-struct-and-one-pointee-level.c +23 -0
  389. offload/_root/data/findings/nested/controls/j7-ctl-struct-and-embedded-pointee.c +24 -0
  390. offload/_root/data/findings/nested/controls/m2-ctl-variable-root.f90 +32 -0
  391. offload/_root/data/findings/nested/controls/m3-ctl-fixed-array-component.f90 +32 -0
  392. offload/_root/data/findings/nested/controls/m5-ctl-no-enter-data.f90 +33 -0
  393. offload/_root/data/findings/nested/controls/n8-ctl-fixed-array-in-component.f90 +33 -0
  394. offload/_root/data/findings/nested/controls/n9-ctl-allocatable-in-the-variable.f90 +33 -0
  395. offload/_root/data/findings/nested/controls/ns4-ctl-two-directives-struct-then-pointee.c +27 -0
  396. offload/_root/data/findings/nested/controls/ns8-ctl-enter-together-exit-split.c +26 -0
  397. offload/_root/data/findings/nested/controls/nu3-ctl-update-pointee-only.c +28 -0
  398. offload/_root/data/findings/nested/controls/p2-ctl-pointer-variable.c +27 -0
  399. offload/_root/data/findings/nested/controls/p3-ctl-direct-member.c +26 -0
  400. offload/_root/data/findings/nested/controls/q2-ctl-fixed-array.f90 +37 -0
  401. offload/_root/data/findings/nested/controls/q3-ctl-allocatable-component-of-the-variable.f90 +38 -0
  402. offload/_root/data/findings/nested/controls/ta2-ctl-no-allocatable-component.f90 +42 -0
  403. offload/_root/data/findings/nested/controls/ta3-ctl-allocatable-scalar-in-the-variable.f90 +38 -0
  404. offload/_root/data/findings/nested/controls/ta4-ctl-pointer-component-only.f90 +42 -0
  405. offload/_root/data/findings/nested/controls/u3-ctl-update-member-only.c +24 -0
  406. offload/_root/data/findings/nested/controls/u4-ctl-two-updates.c +25 -0
  407. offload/_root/data/findings/nested/controls/u5-ctl-same-list-in-map.c +25 -0
  408. offload/_root/data/findings/nested/controls/ua2-ctl-variable-root.f90 +37 -0
  409. offload/_root/data/findings/nested/controls/ua4-ctl-to-in-place-of-alloc-and-update.f90 +37 -0
  410. offload/_root/data/findings/nested/controls/v2-ctl-parent-first.c +25 -0
  411. offload/_root/data/findings/nested/controls/v4-ctl-embedded-member.c +24 -0
  412. offload/_root/data/findings/nested/gcc-acc-c-exit-data-of-a-pointer-array-element-target-hangs.c +83 -0
  413. offload/_root/data/findings/nested/gcc-acc-c-parent-and-shared-pointee-one-directive.c +88 -0
  414. offload/_root/data/findings/nested/gcc-acc-c-struct-and-member-array-one-directive.c +84 -0
  415. offload/_root/data/findings/nested/gcc-c-always-on-pointer-member-section-ice.c +75 -0
  416. offload/_root/data/findings/nested/gcc-c-declare-mapper-pointer-member-section-gpu-fault.c +93 -0
  417. offload/_root/data/findings/nested/gcc-c-from-struct-and-pointee-section-rejected.c +83 -0
  418. offload/_root/data/findings/nested/gcc-fortran-pointer-component-alloc-bounds-lost.f90 +62 -0
  419. offload/_root/data/findings/nested/gcc-fortran-root-and-element-pointer-components-ice.f90 +77 -0
  420. offload/_root/data/findings/nested/nvhpc-c-pointee-before-parent-in-one-map-list-copy-fault.c +55 -0
  421. offload/_root/data/findings/nested/nvhpc-c-update-from-structure-overwrites-attached-pointer-segv.c +86 -0
  422. offload/_root/data/findings/nvhpc-acc-atomic-update-sum-fort2-crash.f90 +53 -0
  423. offload/_root/data/findings/nvhpc-c-acc-atomic-update-sum-ice.c +43 -0
  424. offload/_root/data/findings/nvhpc-c-dist-schedule-chunk-compile-hang.c +41 -0
  425. offload/_root/data/findings/nvhpc-c-map-present-ignored.c +42 -0
  426. offload/_root/data/findings/nvhpc-c-ordered-in-target-nvcpfe-crash.c +92 -0
  427. offload/_root/data/findings/nvhpc-c-parallel-for-firstprivate-in-target.c +62 -0
  428. offload/_root/data/findings/nvhpc-c-parallel-if-in-target-nvvm-ice.c +56 -0
  429. offload/_root/data/findings/nvhpc-defaultmap-firstprivate-explicit-map.f90 +45 -0
  430. offload/_root/data/findings/nvhpc-defaultmap-from-allocatable-indexing.f90 +60 -0
  431. offload/_root/data/findings/nvhpc-depend-inoutset-ignored.f90 +64 -0
  432. offload/_root/data/findings/nvhpc-dist-schedule-chunk-illegal-address.f90 +52 -0
  433. offload/_root/data/findings/nvhpc-managed-acc-shutdown-host-access.f90 +42 -0
  434. offload/_root/data/findings/nvhpc-parallel-if-in-target-nvvm-ice.f90 +60 -0
  435. offload/_root/data/findings/oop/afar-final-dealloc-device-link.f90 +85 -0
  436. offload/_root/data/findings/oop/afar-pdt-length-parameter-not-implemented.f90 +65 -0
  437. offload/_root/data/findings/oop/cce-class-is-device-link.f90 +86 -0
  438. offload/_root/data/findings/oop/cce-copy-alloc-component-section-fault.f90 +73 -0
  439. offload/_root/data/findings/oop/cce-copy-parent-to-component-tofrom-lost.f90 +65 -0
  440. offload/_root/data/findings/oop/cce-copy-second-member-section-lost.f90 +65 -0
  441. offload/_root/data/findings/oop/cce-element-component-map-lost.f90 +64 -0
  442. offload/_root/data/findings/oop/cce-final-dealloc-device-abort.f90 +85 -0
  443. offload/_root/data/findings/oop/cce-pdt-default-mapper-rejected.f90 +71 -0
  444. offload/_root/data/findings/oop/cce-polymorphic-dispatch-device-link.f90 +100 -0
  445. offload/_root/data/findings/oop/cce-section-of-element-component-overlap.f90 +76 -0
  446. offload/_root/data/findings/oop/cce-select-type-guard-not-taken.f90 +91 -0
  447. offload/_root/data/findings/oop/cce-udr-derived-type-unsupported.f90 +69 -0
  448. offload/_root/data/findings/oop/cce21-element-component-map-lost.f90 +62 -0
  449. offload/_root/data/findings/oop/controls/alloccomp-comp-only.f90 +44 -0
  450. offload/_root/data/findings/oop/controls/alloccomp-whole-explicit-component.f90 +50 -0
  451. offload/_root/data/findings/oop/controls/alloccomp-whole.f90 +49 -0
  452. offload/_root/data/findings/oop/controls/elemsec-element.f90 +47 -0
  453. offload/_root/data/findings/oop/controls/final-local.f90 +64 -0
  454. offload/_root/data/findings/oop/controls/host-class-star-select-type.f90 +58 -0
  455. offload/_root/data/findings/oop/controls/host-firstprivate-defined-assignment.f90 +54 -0
  456. offload/_root/data/findings/oop/controls/host-lastprivate-defined-assignment.f90 +58 -0
  457. offload/_root/data/findings/oop/controls/host-private-finalization.f90 +51 -0
  458. offload/_root/data/findings/oop/controls/host-select-type.f90 +65 -0
  459. offload/_root/data/findings/oop/controls/parent-and-comp-component-only.f90 +45 -0
  460. offload/_root/data/findings/oop/controls/pdt-kind.f90 +46 -0
  461. offload/_root/data/findings/oop/controls/pdt-len-host.f90 +43 -0
  462. offload/_root/data/findings/oop/controls/pdt-len-unparameterized.f90 +46 -0
  463. offload/_root/data/findings/oop/controls/poly-dispatch-static.f90 +75 -0
  464. offload/_root/data/findings/oop/controls/section-alloc-whole-component.f90 +49 -0
  465. offload/_root/data/findings/oop/controls/section-element-whole-array.f90 +50 -0
  466. offload/_root/data/findings/oop/controls/section-element-whole-component.f90 +50 -0
  467. offload/_root/data/findings/oop/controls/section-fixed.f90 +43 -0
  468. offload/_root/data/findings/oop/controls/tbp-override.f90 +64 -0
  469. offload/_root/data/findings/oop/gcc-acc-parent-and-member-data-rejected.f90 +63 -0
  470. offload/_root/data/findings/oop/gcc-pdt-length-parameter-abort.f90 +68 -0
  471. offload/_root/data/findings/oop/gcc-polymorphic-dispatch-abort.f90 +97 -0
  472. offload/_root/data/findings/oop/gcc-vtab-not-marked-for-offload.f90 +94 -0
  473. offload/_root/data/findings/oop/nvhpc-copy-alloc-component-illegal-address.f90 +76 -0
  474. offload/_root/data/findings/oop/nvhpc-copy-pdt-length-parameter-illegal-address.f90 +69 -0
  475. offload/_root/data/findings/oop/nvhpc-named-mapper-rejected.f90 +65 -0
  476. offload/_root/data/findings/oop/nvhpc-polymorphic-dispatch-translate-failure.f90 +90 -0
  477. offload/_root/data/findings/oop/nvhpc-polymorphism-runtime-unsupported.f90 +94 -0
  478. offload/_root/data/findings/oop/nvhpc-type-bound-call-rejected.f90 +89 -0
  479. offload/_root/data/findings/oop/nvhpc-udr-derived-type-rejected.f90 +67 -0
  480. offload/_root/data/findings/reviews/afar-c-error-directive-in-target-link.json +217 -0
  481. offload/_root/data/findings/reviews/afar-c-lastprivate-distribute-parallel-for-small-type.json +113 -0
  482. offload/_root/data/findings/reviews/afar-c-teams-distribute-reduction-first-team.json +130 -0
  483. offload/_root/data/findings/reviews/afar-c-update-iterator-copy-mode.json +113 -0
  484. offload/_root/data/findings/reviews/afar-cce19-character-defaultmap.json +292 -0
  485. offload/_root/data/findings/reviews/afar-clang-requires-device-safesync-hang.json +191 -0
  486. offload/_root/data/findings/reviews/afar-flang-firstprivate-map-two-targets.json +130 -0
  487. offload/_root/data/findings/reviews/afar-flang-loop-bind-teams-reduction.json +126 -0
  488. offload/_root/data/findings/reviews/afar-flang-task-reduction-max.json +113 -0
  489. offload/_root/data/findings/reviews/afar-flang-thread-limit-target-parallel-do.json +113 -0
  490. offload/_root/data/findings/reviews/afar-loop-bind-thread-in-teams.json +191 -0
  491. offload/_root/data/findings/reviews/afar-nontemporal-assumed-shape-ice.json +113 -0
  492. offload/_root/data/findings/reviews/afar-udr-derived-type-link.json +113 -0
  493. offload/_root/data/findings/reviews/afar-xnack1-atomic-min-nested-parallel.json +113 -0
  494. offload/_root/data/findings/reviews/afar-xnack1-target-is-present.json +113 -0
  495. offload/_root/data/findings/reviews/apps--afar-cce-teams-private-array-nested-parallel-wrong.json +113 -0
  496. offload/_root/data/findings/reviews/apps--cce20-device-link-infer-address-spaces-crash.json +113 -0
  497. offload/_root/data/findings/reviews/apps--cce21-device-link-agpr-copy-mfma-assert.json +113 -0
  498. offload/_root/data/findings/reviews/apps--cce21-private-array-loaded-subscript-wrong.json +113 -0
  499. offload/_root/data/findings/reviews/apps--gcc-acc-c-tile-partial-tiles-wrong.json +113 -0
  500. offload/_root/data/findings/reviews/catalog--afar-c-ordered-doacross-link.json +113 -0
  501. offload/_root/data/findings/reviews/catalog--afar-c-reduction-task-link.json +113 -0
  502. offload/_root/data/findings/reviews/catalog--afar-flang-absent-optional-target-crash.json +113 -0
  503. offload/_root/data/findings/reviews/catalog--afar-flang-critical-target-parallel-wrong.json +113 -0
  504. offload/_root/data/findings/reviews/catalog--afar-flang-dist-schedule-chunk.json +113 -0
  505. offload/_root/data/findings/reviews/catalog--afar-flang-linear-parallel-ice.json +113 -0
  506. offload/_root/data/findings/reviews/catalog--afar-flang-named-critical-link.json +126 -0
  507. offload/_root/data/findings/reviews/catalog--afar-flang-ordered-wrong.json +113 -0
  508. offload/_root/data/findings/reviews/catalog--afar-flang-reduction-minus-rejected.json +113 -0
  509. offload/_root/data/findings/reviews/catalog--afar-flang-sections-in-target-ice.json +113 -0
  510. offload/_root/data/findings/reviews/catalog--afar-flang-workdistribute-ice.json +113 -0
  511. offload/_root/data/findings/reviews/catalog--c-allocate-const-mem-firstprivate-wrong.json +113 -0
  512. offload/_root/data/findings/reviews/catalog--cce-acc-character-dummy-routine-ice.json +113 -0
  513. offload/_root/data/findings/reviews/catalog--cce-acc-loop-seq-in-routine-wrong.json +113 -0
  514. offload/_root/data/findings/reviews/catalog--cce-allocators-stack-ice.json +113 -0
  515. offload/_root/data/findings/reviews/catalog--cce-c-allocate-align-link.json +113 -0
  516. offload/_root/data/findings/reviews/catalog--cce-c-allocate-allocator-modifier-rejected.json +113 -0
  517. offload/_root/data/findings/reviews/catalog--cce-c-dist-schedule-chunk.json +113 -0
  518. offload/_root/data/findings/reviews/catalog--cce-c-f-pointer-device-link.json +130 -0
  519. offload/_root/data/findings/reviews/catalog--cce-c-long-double-ice.json +217 -0
  520. offload/_root/data/findings/reviews/catalog--cce-c-map-iterator-ice.json +217 -0
  521. offload/_root/data/findings/reviews/catalog--cce-c-recursive-function-ice.json +113 -0
  522. offload/_root/data/findings/reviews/catalog--cce-c-sections-in-target-wrong.json +113 -0
  523. offload/_root/data/findings/reviews/catalog--cce-flang-allocate-in-target-crash.json +113 -0
  524. offload/_root/data/findings/reviews/catalog--cce-flang-lastprivate-parallel-in-seq-loop-wrong.json +113 -0
  525. offload/_root/data/findings/reviews/catalog--cce-flang-stop-in-target-crash.json +113 -0
  526. offload/_root/data/findings/reviews/catalog--cce-iterator-link.json +113 -0
  527. offload/_root/data/findings/reviews/catalog--cce-linear-lastprivate-ice.json +113 -0
  528. offload/_root/data/findings/reviews/catalog--cce-reduction-inscan-ice.json +113 -0
  529. offload/_root/data/findings/reviews/catalog--cce-reduction-task-link.json +113 -0
  530. offload/_root/data/findings/reviews/catalog--cce19-reduction-task-addrspacecast-ice.json +113 -0
  531. offload/_root/data/findings/reviews/catalog--cce20-c-defaultmap-private-storage-rejected.json +217 -0
  532. offload/_root/data/findings/reviews/catalog--cce20-map-self-rejected.json +204 -0
  533. offload/_root/data/findings/reviews/catalog--cce21-c-target-loop-ice.json +126 -0
  534. offload/_root/data/findings/reviews/catalog--defaultmap-present-private-array-abort.json +236 -0
  535. offload/_root/data/findings/reviews/catalog--nvhpc-acc-associate-illegal-address.json +113 -0
  536. offload/_root/data/findings/reviews/catalog--nvhpc-c-function-pointer-kernel-missing.json +268 -0
  537. offload/_root/data/findings/reviews/cce-acc-init-set-runtime-assert.json +113 -0
  538. offload/_root/data/findings/reviews/cce-acc-reduction-200-int8-scalars-wrong.json +113 -0
  539. offload/_root/data/findings/reviews/cce-acc-routine-bind-module-ice.json +113 -0
  540. offload/_root/data/findings/reviews/cce-c-dist-schedule-segv.json +113 -0
  541. offload/_root/data/findings/reviews/cce-c-map-delete-refcount.json +149 -0
  542. offload/_root/data/findings/reviews/cce-c-map-present-assert.json +126 -0
  543. offload/_root/data/findings/reviews/cce-c-openmp45-device-link.json +113 -0
  544. offload/_root/data/findings/reviews/cce-c-parallel-for-in-target.json +141 -0
  545. offload/_root/data/findings/reviews/cce-mapper-next-map-copy-back.json +208 -0
  546. offload/_root/data/findings/reviews/cce-uses-allocators-traits-omp50.json +191 -0
  547. offload/_root/data/findings/reviews/cce19-c-reduction-63-scalars-one-wrong.json +113 -0
  548. offload/_root/data/findings/reviews/cce19-target-parallel-guarded-loop.json +113 -0
  549. offload/_root/data/findings/reviews/cce19-target-parallel-single-ice.json +113 -0
  550. offload/_root/data/findings/reviews/cce21-alloc-2e32-sum-wrong.json +113 -0
  551. offload/_root/data/findings/reviews/cce21-defaultmap-aggregate-flag.json +210 -0
  552. offload/_root/data/findings/reviews/cce21-in-reduction-assumed-shape-write-lost.json +113 -0
  553. offload/_root/data/findings/reviews/cce21-in-reduction-taskwait-link.json +113 -0
  554. offload/_root/data/findings/reviews/clang-c-declare-target-to-omp52.json +113 -0
  555. offload/_root/data/findings/reviews/clang-c-linear-directive-name-hang.json +113 -0
  556. offload/_root/data/findings/reviews/clang-c-shared-declare-target-combined.json +132 -0
  557. offload/_root/data/findings/reviews/dataenv--cce-value-dummy-target-write-visible.json +113 -0
  558. offload/_root/data/findings/reviews/defaultmap-none-loop-variable.json +113 -0
  559. offload/_root/data/findings/reviews/fortran-schedule-static-in-target.json +113 -0
  560. offload/_root/data/findings/reviews/fresh--cce-common-block-name-in-map-rejected.json +113 -0
  561. offload/_root/data/findings/reviews/fresh--cce-list-directed-print-in-target-copy-crash.json +217 -0
  562. offload/_root/data/findings/reviews/fresh--cce19-acc-automatic-array-copyout-copy-crash.json +113 -0
  563. offload/_root/data/findings/reviews/fresh--cce21-combined-if-runtime-expr-loop-skipped.json +113 -0
  564. offload/_root/data/findings/reviews/fresh--nvhpc-acc-gang-worker-collapse-nested-vector-reduction-lost.json +113 -0
  565. offload/_root/data/findings/reviews/fresh--nvhpc-teams-loop-module-allocatable-assign-fort2-crash.json +113 -0
  566. offload/_root/data/findings/reviews/fuzz--1505-cce20.json +113 -0
  567. offload/_root/data/findings/reviews/fuzz--1540-afar.json +113 -0
  568. offload/_root/data/findings/reviews/fuzz--1978-cce19.json +130 -0
  569. offload/_root/data/findings/reviews/fuzz--2334-cce19.json +113 -0
  570. offload/_root/data/findings/reviews/fuzz--591-cce19.json +147 -0
  571. offload/_root/data/findings/reviews/fuzz--650-afar.json +113 -0
  572. offload/_root/data/findings/reviews/fuzz--916-afar.json +130 -0
  573. offload/_root/data/findings/reviews/fuzz--98-cce19.json +113 -0
  574. offload/_root/data/findings/reviews/fuzz--b1-121-afar.json +160 -0
  575. offload/_root/data/findings/reviews/fuzz--b2-209-cce19.json +141 -0
  576. offload/_root/data/findings/reviews/fuzz--b2-68-afar.json +113 -0
  577. offload/_root/data/findings/reviews/fuzz--b2-85-cce20.json +217 -0
  578. offload/_root/data/findings/reviews/fuzz--b3-188-cce19.json +113 -0
  579. offload/_root/data/findings/reviews/fuzz--b3-278-cce19.json +212 -0
  580. offload/_root/data/findings/reviews/fuzz--b3-54-afar.json +113 -0
  581. offload/_root/data/findings/reviews/fuzz--b3-61-cce20.json +191 -0
  582. offload/_root/data/findings/reviews/fuzz--b4-86-cce19.json +113 -0
  583. offload/_root/data/findings/reviews/fuzz--gcc-declare-reduction-module-not-found.json +113 -0
  584. offload/_root/data/findings/reviews/fuzz--gcc-target-simd-map-nontemporal-rejected.json +113 -0
  585. offload/_root/data/findings/reviews/fuzz--nvhpc-allocatable-component-implicit-map-illegal-address.json +141 -0
  586. offload/_root/data/findings/reviews/fuzz--nvhpc-assumed-length-character-dummy-map-ice.json +113 -0
  587. offload/_root/data/findings/reviews/fuzz--nvhpc-default-none-reduction-lastprivate-fort1-crash.json +113 -0
  588. offload/_root/data/findings/reviews/fuzz--nvhpc-defaultmap-firstprivate-lastprivate-ice.json +113 -0
  589. offload/_root/data/findings/reviews/fuzz--nvhpc-defaultmap-to-scalar-reduction-lost.json +113 -0
  590. offload/_root/data/findings/reviews/fuzz--nvhpc-depend-implicit-map-illegal-address.json +113 -0
  591. offload/_root/data/findings/reviews/fuzz--nvhpc-distribute-parallel-num-threads-writes-lost.json +113 -0
  592. offload/_root/data/findings/reviews/fuzz--nvhpc-end-distribute-simd-rejected.json +113 -0
  593. offload/_root/data/findings/reviews/fuzz--nvhpc-loop-character-achar-unsupported.json +113 -0
  594. offload/_root/data/findings/reviews/fuzz--nvhpc-map-always-after-map-to-not-copied-back.json +113 -0
  595. offload/_root/data/findings/reviews/fuzz--nvhpc-num-threads-reduction-identity-lost.json +113 -0
  596. offload/_root/data/findings/reviews/fuzz--nvhpc-target-parallel-firstprivate-translate-failure.json +191 -0
  597. offload/_root/data/findings/reviews/fuzz--nvhpc-target-parallel-single-hang.json +113 -0
  598. offload/_root/data/findings/reviews/fuzz--nvhpc-target-simd-collapse-translate-failure.json +113 -0
  599. offload/_root/data/findings/reviews/fuzz--nvhpc-target-simd-no-end-directive-rejected.json +113 -0
  600. offload/_root/data/findings/reviews/fuzz--par-s1-2082-gcc_g90.json +126 -0
  601. offload/_root/data/findings/reviews/fuzz--s1-2370-cce21.json +113 -0
  602. offload/_root/data/findings/reviews/fuzz--s1-2592-cce21.json +113 -0
  603. offload/_root/data/findings/reviews/fuzz--s1-3463-cce21.json +113 -0
  604. offload/_root/data/findings/reviews/fuzz--s1-6760-cce20.json +130 -0
  605. offload/_root/data/findings/reviews/fuzz--s1-6888-cce21.json +113 -0
  606. offload/_root/data/findings/reviews/fuzz--s1-7882-cce20.json +113 -0
  607. offload/_root/data/findings/reviews/fuzz--s1-8634-cce21.json +113 -0
  608. offload/_root/data/findings/reviews/fuzz--s1-91-cce21.json +113 -0
  609. offload/_root/data/findings/reviews/fuzz--s1-9443-afar.json +113 -0
  610. offload/_root/data/findings/reviews/fuzz--s1-9914-cce19.json +141 -0
  611. offload/_root/data/findings/reviews/gcc--gcc-acc-bind-device-type-rejected.json +113 -0
  612. offload/_root/data/findings/reviews/gcc--gcc-acc-detach-delete-attach-underflow.json +314 -0
  613. offload/_root/data/findings/reviews/gcc--gcc-acc-gang-dim-collapse-force-rejected.json +113 -0
  614. offload/_root/data/findings/reviews/gcc--gcc-acc-init-set-shutdown-rejected.json +113 -0
  615. offload/_root/data/findings/reviews/gcc--gcc-acc-link-in-routine-rejected.json +113 -0
  616. offload/_root/data/findings/reviews/gcc--gcc-acc-use-device-allocatable-rejected.json +113 -0
  617. offload/_root/data/findings/reviews/gcc--gcc-c-motion-mapper-rejected.json +113 -0
  618. offload/_root/data/findings/reviews/gcc--gcc-c-omp60-undocumented-rejected.json +217 -0
  619. offload/_root/data/findings/reviews/gcc--gcc-c-omp60-unimplemented-rejected.json +236 -0
  620. offload/_root/data/findings/reviews/gcc--gcc-c-target-in-task-mandatory-device-not-found.json +236 -0
  621. offload/_root/data/findings/reviews/gcc--gcc-c-uses-allocators-traits-unimplemented.json +113 -0
  622. offload/_root/data/findings/reviews/gcc--gcc-declare-mapper-rejected.json +113 -0
  623. offload/_root/data/findings/reviews/gcc--gcc-defaultmap-to-pointer-copy-back.json +217 -0
  624. offload/_root/data/findings/reviews/gcc--gcc-loop-bind-default-none-rejected.json +113 -0
  625. offload/_root/data/findings/reviews/harvest--afar-flang-strided-target-update.json +141 -0
  626. offload/_root/data/findings/reviews/harvest--cce-acc-declare-create-module-allocatable-xnack1-fault.json +113 -0
  627. offload/_root/data/findings/reviews/harvest--cce-c-implicit-struct-map-partly-present.json +217 -0
  628. offload/_root/data/findings/reviews/harvest--cce-c-strided-target-update.json +141 -0
  629. offload/_root/data/findings/reviews/harvest--cce-ftn-target-parallel-thread-query-ice.json +130 -0
  630. offload/_root/data/findings/reviews/harvest--cce-named-constant-array-declare-target-routine-rejected.json +113 -0
  631. offload/_root/data/findings/reviews/harvest--cce-use-device-ptr-c-ptr-not-converted.json +113 -0
  632. offload/_root/data/findings/reviews/harvest--cce21-declare-target-link-module-variable-write-lost.json +113 -0
  633. offload/_root/data/findings/reviews/harvest--cce21-internal-procedure-calls-internal-in-target-fault.json +158 -0
  634. offload/_root/data/findings/reviews/harvest--gcc-acc-declare-create-allocatable-not-mapped.json +204 -0
  635. offload/_root/data/findings/reviews/harvest--gcc-c-same-item-two-maps-rejected.json +143 -0
  636. offload/_root/data/findings/reviews/harvest--gcc-c-strided-section-rejected.json +164 -0
  637. offload/_root/data/findings/reviews/harvest--gcc-c-target-data-struct-pointer-section-ice.json +113 -0
  638. offload/_root/data/findings/reviews/harvest--gcc-c-target-data-two-maps-ice.json +113 -0
  639. offload/_root/data/findings/reviews/harvest--gcc-teams-simd-matmul-allocatable-ice.json +113 -0
  640. offload/_root/data/findings/reviews/harvest--nvhpc-c-target-data-if-false-use-device-ptr-garbage.json +113 -0
  641. offload/_root/data/findings/reviews/harvest--nvhpc-named-constant-array-declare-target-routine-rejected.json +126 -0
  642. offload/_root/data/findings/reviews/harvest--nvhpc-use-device-ptr-c-ptr-not-found.json +113 -0
  643. offload/_root/data/findings/reviews/harvest--nvhpc2511-target-nowait-in-parallel-for-ice.json +130 -0
  644. offload/_root/data/findings/reviews/hecbench--gcc-c-float16-array-in-target-lto-ice.json +217 -0
  645. offload/_root/data/findings/reviews/hecbench--gcc-c-swar-popcount-assembler-error.json +126 -0
  646. offload/_root/data/findings/reviews/malloc--afar-device-malloc-in-kernel-corrupts-records.json +270 -0
  647. offload/_root/data/findings/reviews/multithread-allocatable-section-maps.json +191 -0
  648. offload/_root/data/findings/reviews/nested--afar-cce-c-call-result-member-in-target-rejected.json +113 -0
  649. offload/_root/data/findings/reviews/nested--afar-cce-c-update-struct-and-member-rejected.json +126 -0
  650. offload/_root/data/findings/reviews/nested--afar-flang-pointer-root-allocatable-component-enter-data-fault.json +191 -0
  651. offload/_root/data/findings/reviews/nested--cce-c-struct-and-nested-pointee-sections-ice.json +113 -0
  652. offload/_root/data/findings/reviews/nested--cce-fortran-nested-allocatable-component-copy-fault.json +214 -0
  653. offload/_root/data/findings/reviews/nested--cce-fortran-pointer-to-type-with-allocatable-scalar-component-typed-transfer.json +191 -0
  654. offload/_root/data/findings/reviews/nested--cce-fortran-update-to-pointer-root-allocatable-scalar-component-no-accelerator-object.json +297 -0
  655. offload/_root/data/findings/reviews/nested--gcc-acc-c-exit-data-of-a-pointer-array-element-target-hangs.json +204 -0
  656. offload/_root/data/findings/reviews/nested--gcc-acc-c-parent-and-shared-pointee-one-directive.json +130 -0
  657. offload/_root/data/findings/reviews/nested--gcc-acc-c-struct-and-member-array-one-directive.json +141 -0
  658. offload/_root/data/findings/reviews/nested--gcc-c-always-on-pointer-member-section-ice.json +113 -0
  659. offload/_root/data/findings/reviews/nested--gcc-c-declare-mapper-pointer-member-section-gpu-fault.json +113 -0
  660. offload/_root/data/findings/reviews/nested--gcc-c-from-struct-and-pointee-section-rejected.json +113 -0
  661. offload/_root/data/findings/reviews/nested--gcc-fortran-pointer-component-alloc-bounds-lost.json +217 -0
  662. offload/_root/data/findings/reviews/nested--gcc-fortran-root-and-element-pointer-components-ice.json +217 -0
  663. offload/_root/data/findings/reviews/nested--nvhpc-c-pointee-before-parent-in-one-map-list-copy-fault.json +204 -0
  664. offload/_root/data/findings/reviews/nested--nvhpc-c-update-from-structure-overwrites-attached-pointer-segv.json +191 -0
  665. offload/_root/data/findings/reviews/nvhpc-c-acc-atomic-update-sum-ice.json +277 -0
  666. offload/_root/data/findings/reviews/nvhpc-c-dist-schedule-chunk-compile-hang.json +113 -0
  667. offload/_root/data/findings/reviews/nvhpc-c-map-present-ignored.json +113 -0
  668. offload/_root/data/findings/reviews/nvhpc-c-ordered-in-target-nvcpfe-crash.json +113 -0
  669. offload/_root/data/findings/reviews/nvhpc-c-parallel-for-firstprivate-in-target.json +113 -0
  670. offload/_root/data/findings/reviews/nvhpc-defaultmap-firstprivate-explicit-map.json +113 -0
  671. offload/_root/data/findings/reviews/nvhpc-defaultmap-from-allocatable-indexing.json +132 -0
  672. offload/_root/data/findings/reviews/nvhpc-depend-inoutset-ignored.json +113 -0
  673. offload/_root/data/findings/reviews/nvhpc-dist-schedule-chunk-illegal-address.json +113 -0
  674. offload/_root/data/findings/reviews/nvhpc-managed-acc-shutdown-host-access.json +113 -0
  675. offload/_root/data/findings/reviews/nvhpc-parallel-if-in-target-nvvm-ice.json +113 -0
  676. offload/_root/data/findings/reviews/oop--afar-final-dealloc-device-link.json +132 -0
  677. offload/_root/data/findings/reviews/oop--afar-pdt-length-parameter-not-implemented.json +113 -0
  678. offload/_root/data/findings/reviews/oop--cce-class-is-device-link.json +130 -0
  679. offload/_root/data/findings/reviews/oop--cce-copy-alloc-component-section-fault.json +217 -0
  680. offload/_root/data/findings/reviews/oop--cce-copy-parent-to-component-tofrom-lost.json +217 -0
  681. offload/_root/data/findings/reviews/oop--cce-copy-second-member-section-lost.json +113 -0
  682. offload/_root/data/findings/reviews/oop--cce-element-component-map-lost.json +113 -0
  683. offload/_root/data/findings/reviews/oop--cce-final-dealloc-device-abort.json +208 -0
  684. offload/_root/data/findings/reviews/oop--cce-pdt-default-mapper-rejected.json +191 -0
  685. offload/_root/data/findings/reviews/oop--cce-polymorphic-dispatch-device-link.json +247 -0
  686. offload/_root/data/findings/reviews/oop--cce-section-of-element-component-overlap.json +113 -0
  687. offload/_root/data/findings/reviews/oop--cce-select-type-guard-not-taken.json +191 -0
  688. offload/_root/data/findings/reviews/oop--cce-udr-derived-type-unsupported.json +132 -0
  689. offload/_root/data/findings/reviews/oop--gcc-acc-parent-and-member-data-rejected.json +141 -0
  690. offload/_root/data/findings/reviews/oop--gcc-pdt-length-parameter-abort.json +141 -0
  691. offload/_root/data/findings/reviews/oop--gcc-polymorphic-dispatch-abort.json +217 -0
  692. offload/_root/data/findings/reviews/oop--gcc-vtab-not-marked-for-offload.json +113 -0
  693. offload/_root/data/findings/reviews/oop--nvhpc-copy-alloc-component-illegal-address.json +113 -0
  694. offload/_root/data/findings/reviews/oop--nvhpc-copy-pdt-length-parameter-illegal-address.json +236 -0
  695. offload/_root/data/findings/reviews/oop--nvhpc-named-mapper-rejected.json +113 -0
  696. offload/_root/data/findings/reviews/oop--nvhpc-polymorphic-dispatch-translate-failure.json +223 -0
  697. offload/_root/data/findings/reviews/oop--nvhpc-polymorphism-runtime-unsupported.json +126 -0
  698. offload/_root/data/findings/reviews/oop--nvhpc-type-bound-call-rejected.json +113 -0
  699. offload/_root/data/findings/reviews/oop--nvhpc-udr-derived-type-rejected.json +113 -0
  700. offload/_root/data/findings/reviews/stress--afar-c-lastprivate-combined-target-not-mapped.json +113 -0
  701. offload/_root/data/findings/reviews/stress--afar-target-scalar-implicit-firstprivate.json +175 -0
  702. offload/_root/data/findings/reviews/stress--cce-acc-declare-create-scalar-serial-firstprivate.json +113 -0
  703. offload/_root/data/findings/reviews/stress--cce-c-distribute-lastprivate-lost.json +113 -0
  704. offload/_root/data/findings/reviews/stress--cce-c-flto-offload-dropped.json +204 -0
  705. offload/_root/data/findings/reviews/stress--cce-ftn-cif-record-split-abort.json +113 -0
  706. offload/_root/data/findings/reviews/stress--cce-lastprivate-num-threads-collapse-simd.json +113 -0
  707. offload/_root/data/findings/reviews/stress--cce-teams-reduction-many-teams-wrap.json +113 -0
  708. offload/_root/data/findings/reviews/stress--cce21-declare-target-scalar-map-write-lost.json +113 -0
  709. offload/_root/data/findings/reviews/stress--gcc-declare-target-allocatable-component-ice.json +191 -0
  710. offload/_root/data/findings/reviews/stress--nvhpc-acc-derived-type-component-not-copied.json +126 -0
  711. offload/_root/data/findings/reviews/stress--nvhpc-c-lastprivate-teams-distribute-parallel-for-lost.json +113 -0
  712. offload/_root/data/findings/reviews/stress--nvhpc-declare-target-scalar-write-lost.json +113 -0
  713. offload/_root/data/findings/reviews/stress--nvhpc-lastprivate-combined-target-not-mapped.json +113 -0
  714. offload/_root/data/findings/reviews/stress--nvhpc-target-scalar-implicit-firstprivate.json +130 -0
  715. offload/_root/data/findings/reviews/target-update-sections-in-parallel.json +113 -0
  716. offload/_root/data/findings/stress/afar-c-lastprivate-combined-target-not-mapped.c +72 -0
  717. offload/_root/data/findings/stress/afar-target-scalar-implicit-firstprivate.f90 +47 -0
  718. offload/_root/data/findings/stress/cce-acc-declare-create-scalar-serial-firstprivate.f90 +43 -0
  719. offload/_root/data/findings/stress/cce-c-distribute-lastprivate-lost.c +52 -0
  720. offload/_root/data/findings/stress/cce-c-flto-offload-dropped.c +73 -0
  721. offload/_root/data/findings/stress/cce-ftn-cif-record-split-abort.f90 +109 -0
  722. offload/_root/data/findings/stress/cce-lastprivate-num-threads-collapse-simd.f90 +66 -0
  723. offload/_root/data/findings/stress/cce-teams-reduction-many-teams-wrap.f90 +55 -0
  724. offload/_root/data/findings/stress/cce21-declare-target-scalar-map-write-lost.f90 +58 -0
  725. offload/_root/data/findings/stress/controls/gcc-declare-target-allocatable-component-control.f90 +29 -0
  726. offload/_root/data/findings/stress/gcc-declare-target-allocatable-component-ice.f90 +61 -0
  727. offload/_root/data/findings/stress/nvhpc-acc-derived-type-component-not-copied.f90 +33 -0
  728. offload/_root/data/findings/stress/nvhpc-c-lastprivate-teams-distribute-parallel-for-lost.c +62 -0
  729. offload/_root/data/findings/stress/nvhpc-declare-target-scalar-write-lost.f90 +43 -0
  730. offload/_root/data/findings/stress/nvhpc-lastprivate-combined-target-not-mapped.f90 +60 -0
  731. offload/_root/data/findings/stress/nvhpc-target-scalar-implicit-firstprivate.f90 +41 -0
  732. offload/_root/data/findings/target-update-sections-in-parallel.f90 +53 -0
  733. offload/_root/data/issues.json +1 -0
  734. offload/_root/data/search.json +1 -0
  735. offload/_root/data/vendor/checks/build.py +288 -0
  736. offload/_version.py +24 -0
  737. offload/canuse.py +88 -0
  738. offload/cli.py +52 -0
  739. offload/data.py +85 -0
  740. offload/engine/__init__.py +0 -0
  741. offload/engine/acc_c_gen.py +415 -0
  742. offload/engine/acc_gen.py +1104 -0
  743. offload/engine/acc_rules.py +656 -0
  744. offload/engine/apps.py +804 -0
  745. offload/engine/baseline.py +324 -0
  746. offload/engine/c_gen.py +883 -0
  747. offload/engine/c_program.py +913 -0
  748. offload/engine/c_rules.py +503 -0
  749. offload/engine/campaign.py +1180 -0
  750. offload/engine/campaigns/__init__.py +2 -0
  751. offload/engine/campaigns/hecbench.py +153 -0
  752. offload/engine/campaigns/nested.py +76 -0
  753. offload/engine/campaigns/oop.py +61 -0
  754. offload/engine/canary.py +275 -0
  755. offload/engine/catalog.py +860 -0
  756. offload/engine/citations.py +532 -0
  757. offload/engine/clang_oracle.py +208 -0
  758. offload/engine/combos.py +234 -0
  759. offload/engine/confirm/__init__.py +2 -0
  760. offload/engine/confirm/backlog.py +159 -0
  761. offload/engine/confirm/claims.py +423 -0
  762. offload/engine/confirm/collectors.py +665 -0
  763. offload/engine/confirm/decisions.py +202 -0
  764. offload/engine/confirm/draft.py +195 -0
  765. offload/engine/confirm/engine.py +157 -0
  766. offload/engine/confirm/execute.py +382 -0
  767. offload/engine/confirm/facts.py +467 -0
  768. offload/engine/confirm/findings.py +617 -0
  769. offload/engine/confirm/forms.py +145 -0
  770. offload/engine/confirm/ingest.py +372 -0
  771. offload/engine/confirm/jobs.py +215 -0
  772. offload/engine/confirm/legality.py +323 -0
  773. offload/engine/confirm/machines.py +254 -0
  774. offload/engine/confirm/minimize.py +268 -0
  775. offload/engine/confirm/model.py +249 -0
  776. offload/engine/confirm/ports.py +107 -0
  777. offload/engine/confirm/programs.py +222 -0
  778. offload/engine/confirm/registry.py +151 -0
  779. offload/engine/confirm/regress.py +278 -0
  780. offload/engine/confirm/rules.py +565 -0
  781. offload/engine/confirm/store.py +63 -0
  782. offload/engine/confirm/triage.py +838 -0
  783. offload/engine/confirm/validate.py +607 -0
  784. offload/engine/confirm/witness.py +355 -0
  785. offload/engine/corpus_check.py +388 -0
  786. offload/engine/coverage.py +318 -0
  787. offload/engine/dataenv_gen.py +1318 -0
  788. offload/engine/dataenv_rules.py +278 -0
  789. offload/engine/devtemps.py +146 -0
  790. offload/engine/expected.py +2559 -0
  791. offload/engine/f2c.py +1783 -0
  792. offload/engine/finding_claims.py +330 -0
  793. offload/engine/finding_header.py +229 -0
  794. offload/engine/finding_rows.py +382 -0
  795. offload/engine/flang_oracle.py +299 -0
  796. offload/engine/fsource.py +620 -0
  797. offload/engine/fuzz.py +2455 -0
  798. offload/engine/fuzz_base.py +2016 -0
  799. offload/engine/fuzz_campaign.py +592 -0
  800. offload/engine/fuzz_exec.py +798 -0
  801. offload/engine/fuzz_min.py +1049 -0
  802. offload/engine/fuzz_profile.py +340 -0
  803. offload/engine/fuzz_report.py +1270 -0
  804. offload/engine/fuzz_steer.py +181 -0
  805. offload/engine/gate.py +1013 -0
  806. offload/engine/gate_report.py +711 -0
  807. offload/engine/gate_run.py +118 -0
  808. offload/engine/gate_stored.py +466 -0
  809. offload/engine/gen.py +1114 -0
  810. offload/engine/gen_templates.py +2583 -0
  811. offload/engine/grammar.py +695 -0
  812. offload/engine/harness.py +1472 -0
  813. offload/engine/harvest/__init__.py +3 -0
  814. offload/engine/harvest/c_runtime.py +465 -0
  815. offload/engine/harvest/checks.py +534 -0
  816. offload/engine/harvest/convert.py +784 -0
  817. offload/engine/harvest/f_runtime.py +668 -0
  818. offload/engine/harvest/filters.py +338 -0
  819. offload/engine/harvest/history.py +122 -0
  820. offload/engine/harvest/inventory.py +399 -0
  821. offload/engine/harvest2/__init__.py +5 -0
  822. offload/engine/harvest2/aomp.py +119 -0
  823. offload/engine/harvest2/examples.py +116 -0
  824. offload/engine/harvest2/gomp.py +679 -0
  825. offload/engine/harvest2/hand.py +150 -0
  826. offload/engine/harvest2/split.py +78 -0
  827. offload/engine/harvest_known/__init__.py +2 -0
  828. offload/engine/harvest_known/apps.py +65 -0
  829. offload/engine/harvest_known/cases.py +128 -0
  830. offload/engine/harvest_known/centres.py +184 -0
  831. offload/engine/harvest_known/forum.py +180 -0
  832. offload/engine/harvest_known/relnotes.py +42 -0
  833. offload/engine/harvest_known/textscan.py +107 -0
  834. offload/engine/hdrwrap.py +42 -0
  835. offload/engine/hecbench.py +568 -0
  836. offload/engine/hecbench_report.py +265 -0
  837. offload/engine/hecbench_run.py +483 -0
  838. offload/engine/idioms.py +1427 -0
  839. offload/engine/kbody_cites.py +81 -0
  840. offload/engine/kbody_emit.py +949 -0
  841. offload/engine/kbody_gen.py +795 -0
  842. offload/engine/legality_review.py +236 -0
  843. offload/engine/localcfg.py +58 -0
  844. offload/engine/malloc_dd.py +267 -0
  845. offload/engine/mutate.py +1933 -0
  846. offload/engine/nested_cites.py +196 -0
  847. offload/engine/nested_emit.py +789 -0
  848. offload/engine/nested_gen.py +1721 -0
  849. offload/engine/offload_scope.py +197 -0
  850. offload/engine/ompvv.py +624 -0
  851. offload/engine/oop_gen.py +2249 -0
  852. offload/engine/prerun.py +1435 -0
  853. offload/engine/program_source.py +739 -0
  854. offload/engine/provenance.py +103 -0
  855. offload/engine/reduce.py +2098 -0
  856. offload/engine/report.py +3374 -0
  857. offload/engine/root.py +33 -0
  858. offload/engine/rules.py +4256 -0
  859. offload/engine/run_matrix.py +325 -0
  860. offload/engine/site/__init__.py +1 -0
  861. offload/engine/site/columns.py +53 -0
  862. offload/engine/site/data.py +648 -0
  863. offload/engine/site/header.py +228 -0
  864. offload/engine/site/inputs.py +115 -0
  865. offload/engine/site/matrix.py +434 -0
  866. offload/engine/site/scrub.py +294 -0
  867. offload/engine/skeleton.py +121 -0
  868. offload/engine/spec_text.py +242 -0
  869. offload/engine/stress.py +4122 -0
  870. offload/engine/stress_c.py +1000 -0
  871. offload/engine/stress_exec.py +805 -0
  872. offload/engine/stress_min.py +248 -0
  873. offload/engine/stress_report.py +552 -0
  874. offload/engine/textclean.py +97 -0
  875. offload/engine/toolchains.py +1070 -0
  876. offload/engine/transforms.py +511 -0
  877. offload/engine/usage.py +1252 -0
  878. offload/engine/widen.py +673 -0
  879. offload/engine/widen_progs.py +2396 -0
  880. offload/issues.py +146 -0
  881. offtarget-0.1.0.dist-info/METADATA +86 -0
  882. offtarget-0.1.0.dist-info/RECORD +886 -0
  883. offtarget-0.1.0.dist-info/WHEEL +4 -0
  884. offtarget-0.1.0.dist-info/entry_points.txt +2 -0
  885. offtarget-0.1.0.dist-info/licenses/LICENSE +21 -0
  886. offtarget-0.1.0.dist-info/licenses/THIRD_PARTY_NOTICES.md +20 -0
@@ -0,0 +1,37 @@
1
+ // An error directive with at(compilation) severity(warning) in a
2
+ // target region (OpenMP 6.0 §10.1: at(compilation) acts at compile time
3
+ // only; a warning lets the compilation go on). Expected: the warning, a
4
+ // successful build, "RESULT ... check=pass".
5
+ // Observed (AFAR amdclang 24.0.0git, -fopenmp --offload-arch=gfx942
6
+ // -fopenmp-version=60 -O2, 2026-10-21): the warning is printed twice (host
7
+ // and device pass), then the device link fails: "ld.lld: error: undefined
8
+ // symbol: __kmpc_error >>> referenced by ...img.lto.o:(__omp_offloading_..
9
+ // _main_l..)": the device code calls the runtime error routine, which the
10
+ // device runtime lacks (amdclang lowers at(compilation) to a run-time
11
+ // call: placed in the host part of main the program builds, and its run
12
+ // prints "OMP: Warning #290: ... Encountered user-directed warning: probe",
13
+ // which at(compilation) should not). The Fortran form (amdflang) builds and
14
+ // runs; CCE craycc 19, 20, 21 build and run both placements. Makes the C message, severity and
15
+ // severity.warning programs (6.0) a link failure on AFAR.
16
+ #include <stdio.h>
17
+ #include <omp.h>
18
+
19
+ int main(void) {
20
+ int b[64];
21
+ int host_flag = 1;
22
+ #pragma omp target map(from: b) map(tofrom: host_flag)
23
+ {
24
+ #pragma omp error at(compilation) severity(warning) message("probe")
25
+ host_flag = omp_is_initial_device();
26
+ for (int i = 0; i < 64; i++) b[i] = 2 * i + 1;
27
+ }
28
+ int ok = 1;
29
+ for (int i = 0; i < 64; i++) ok = ok && b[i] == 2 * i + 1;
30
+ printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
31
+ return 0;
32
+ }
33
+ // site:
34
+ // title: amdclang -fopenmp-version=60: error at(compilation) severity(warning) in a target region fails at the device link
35
+ // + (__kmpc_error undefined)
36
+ // control: ../vendor/checks/src/afar/control/afar-c-error-directive-in-target-link-control.c the error directive removed
37
+ // end site
@@ -0,0 +1,56 @@
1
+ /* # Finding (lead 2): AFAR amdclang returns 0 or a garbage value for a lastprivate item
2
+ # of fewer than 8 bytes on target teams distribute parallel for (C)
3
+
4
+ - compiler: AFAR amdclang 24.0.0git (drop 24.3.0), -fopenmp --offload-arch=gfx942 (MI300A,
5
+ HSA_XNACK 1 and 0) and gfx90a (MI250X, Tioga, XNACK 0), -fopenmp-version=52, -O2 and -O0
6
+ - expected: lp= 192 dev= 1. lastprivate gives the original lp the value of the sequentially
7
+ last iteration (i = 64: 3 * 64): "the value of each new list item from the sequentially last
8
+ iteration of the associated loops ... is assigned to the original list item" (5.2 §5.4.5
9
+ p.115 l.12-16); on the combined construct it applies to the distribute and for leaves (5.2
10
+ §17.2 p.340 l.21-22) and map(tofrom: lp) on the target leaf brings the value to the host.
11
+ - actual: MI300A (XNACK 1 and 0, -O2 and -O0): lp= 0 or a value that varies from run to run
12
+ (-1191462675, 948123843, 16246, ...; the trial saw 104571, 82972, 165175, 151912, 17038;
13
+ the review's 12 runs all printed 0);
14
+ MI250X: lp= 0 in every run. The same with short (14674, -18864, ...) and float (-1.1e-05, ...);
15
+ with target followed by teams distribute parallel for lastprivate(lp) inside it.
16
+ - same-compiler controls (each one change): long long lp or double lp gives 192 in every run
17
+ on both GPUs; target teams distribute lastprivate(lp) map(tofrom: lp) with the int gives 192;
18
+ target parallel for lastprivate(lp) map(tofrom: lp) with the int gives 192.
19
+ - no other family can witness: CCE craycc 19/20/21 give lp= -1 (the original unchanged) with
20
+ int and long long alike, their lastprivate defect on a for inside a target region
21
+ (cce-c-parallel-for-in-target.c); NVIDIA's guide documents lastprivate on distribute as
22
+ unsupported (HPC Compilers User's Guide 25.11, §7.4, 2.9.4), so nvc is no witness; AFAR
23
+ amdflang stops at "not yet implemented: lastprivate clause in constructs other than
24
+ simd/worksharing-loop/taskloop" on the Fortran form. The expected value rests on the spec
25
+ text and AFAR's own 8-byte and single-leaf controls.
26
+ - relation: stress/afar-c-lastprivate-combined-target-not-mapped.c is the missing implicit map
27
+ (no map clause: lp stays -1 with int and long long alike); this is a second defect, which is
28
+ why that finding's explicit-map control passes only with its long long item .
29
+ - legality: offload.engine.rules accepts it (with the race rule and the restriction checks:
30
+ offload.engine.prerun.check, rerun, data/evidence/lead_probe/logs/legality_new.jsonl), and nvc
31
+ 26.9 and 25.11 (NVHPC, not under test for an AFAR finding) compile it with -mp=gpu
32
+ (data/evidence/lead_probe/logs/wingtip_witness.log); the check's other witness, the amdclang front
33
+ end, is AFAR's own and is not counted; no gfortran or gcc is a legality witness.
34
+ Race-free: lp is lastprivate; every iteration writes only its own copy.
35
+ - evidence: data/evidence/lead_probe/leads/ (lp_*.c), runs in data/evidence/lead_probe/logs/leads_*.jsonl;
36
+ reproduction (the gate's four environments by hand, as for
37
+ afar-c-teams-distribute-reduction-first-team.c): MI300A, XNACK 1 and 0, wrong in every run of
38
+ (a), (b), (c) and (d), but the value differs between runs (0, 16246, 337455926, -1176291223,
39
+ ...: the gate reads such a row as nondeterministic); MI250X (tioga39), (a), (b), (d): lp= 0 in
40
+ every run (confirmed). The long long control gave 192 in every environment. */
41
+ #include <stdio.h>
42
+ #include <omp.h>
43
+ int main(void) {
44
+ int lp = -1;
45
+ int dev = -1;
46
+ #pragma omp target teams distribute parallel for lastprivate(lp) map(tofrom: lp)
47
+ for (int i = 1; i <= 64; i++)
48
+ lp = 3 * i;
49
+ #pragma omp target map(tofrom: dev)
50
+ dev = omp_is_initial_device() ? 0 : 1;
51
+ printf("lp= %d dev= %d\n", lp, dev);
52
+ return 0;
53
+ }
54
+ // site:
55
+ // title: A lastprivate item smaller than 8 bytes on target teams distribute parallel for comes back as 0 or a garbage value
56
+ // end site
@@ -0,0 +1,59 @@
1
+ /* # Finding (lead 1): AFAR amdclang keeps only the first team's partial result of a
2
+ # reduction on target teams distribute (C, -O1 and above)
3
+
4
+ - compiler: AFAR amdclang 24.0.0git (drop 24.3.0), -fopenmp --offload-arch=gfx942 (MI300A,
5
+ HSA_XNACK 1 and 0) and gfx90a (MI250X, Tioga, XNACK 0), -fopenmp-version=52, -O2
6
+ - expected: l= 83200 dev= 1 (the sum of 40 * i over i = 1..64). The reduction clause applies to
7
+ the teams leaf (5.2 §17.2 p.340 l.36-37, §5.5.8 p.134 l.18: distribute takes no reduction),
8
+ "For each list item, a private copy is created for each implicit task or SIMD lane and is
9
+ initialized with the initializer value of the reduction-identifier. After the end of the
10
+ region, the original list item is updated with the values of the private copies using the
11
+ combiner associated with the reduction-identifier" (5.2 §5.5.8 p.134 l.21-24)
12
+ - actual: l= 40 dev= 1: the region ran on the device and the original got only the first
13
+ team's partial sum (team 0 ran iteration 1). Every run at -O1, -O2 and -O3, MI300A at XNACK 1
14
+ and 0 and MI250X; with 1000 iterations l= 61600 (team 0's chunk) instead of 20020000. The
15
+ same with reduction(max: l) and the body l = max(l, i * 40) (l= 40, expected 2560; this is the
16
+ control of the HPE packet's cce-c-distribute-lastprivate-lost report that AFAR failed,
17
+ data/vendor/errata-for-findings.md item 23), with reduction(min: l) (l= 0, expected 40), with
18
+ double and int items, with num_teams(64), with target followed by teams distribute, and with
19
+ target teams reduction(+: l) around a distribute.
20
+ - same-compiler controls (each one change): the same file at -O0 gives l= 83200;
21
+ num_teams(8) or num_teams(4) or num_teams(1) gives 83200 (2560 for the max form);
22
+ target teams distribute parallel for reduction(max: l) gives 2560; AFAR amdflang's
23
+ target teams distribute reduction(max: l) over the same loop gives 2560.
24
+ - other families: CCE craycc 19.0.0, 20.0.2, 21.0.3 and 21.0.4 give l= 83200 on this file (and
25
+ 2560, 20020000 on the max and 1000-iteration forms).
26
+ - legality: offload.engine.rules accepts it (with the race rule and the restriction checks:
27
+ offload.engine.prerun.check, rerun, data/evidence/lead_probe/logs/legality_new.jsonl), and nvc
28
+ 26.9 and 25.11 (NVHPC, not under test for an AFAR finding) compile it with -mp=gpu
29
+ (data/evidence/lead_probe/logs/wingtip_witness.log); the check's other witness, the amdclang front
30
+ end, is AFAR's own and is not counted; no gfortran or gcc is a legality witness.
31
+ Race-free: each team updates only its private copy of l.
32
+ - evidence: data/evidence/lead_probe/leads/ (red_*.c, red3_*.c; jobs.py, run_leads.sh), runs in
33
+ data/evidence/lead_probe/logs/leads_*.jsonl
34
+ - reproduction (the gate's four environments by hand: data/evidence/lead_probe/confirm_jobs.py,
35
+ run_confirm.sh; logs/confirm_*.jsonl): MI300A, XNACK 1 and 0, (a) harness_<8 hex> and (d) a
36
+ second run there and (b) GATE + 14 letters on tuolumne1047, (c) the path of (a) on
37
+ tuolumne1042: l= 40 in every run (confirmed); MI250X (tioga39), (a), (b), (d): l= 40. The -O0
38
+ and num_teams(8) controls gave 83200 in every environment; CCE 19/20/21/21.0.4 gave 83200.
39
+ - upstream: llvm-project fixed it in 2c1650555b10 "[OpenMP][offload] Fix
40
+ single-thread SPMD cross-team reductions (#231843)" (2026-10-14, after the AFAR drop), with the
41
+ test offload/test/offloading/xteam_reduction_no_parallel.c; AFAR fails that test (gfx942 at
42
+ XNACK 0 and 1, gfx90a; gate confirmed), CCE 19/20/21 and NVHPC 25.11/26.9 pass it
43
+ . */
44
+ #include <stdio.h>
45
+ #include <omp.h>
46
+ int main(void) {
47
+ long long l = 0;
48
+ int dev = -1;
49
+ #pragma omp target teams distribute reduction(+: l) map(tofrom: l)
50
+ for (int i = 1; i <= 64; i++)
51
+ l += (long long) i * 40;
52
+ #pragma omp target map(tofrom: dev)
53
+ dev = omp_is_initial_device() ? 0 : 1;
54
+ printf("l= %lld dev= %d\n", l, dev);
55
+ return 0;
56
+ }
57
+ // site:
58
+ // title: amdclang keeps only the first team's partial result of a reduction on target teams distribute
59
+ // end site
@@ -0,0 +1,45 @@
1
+ // (copy mode for the whole catalog): AFAR amdclang moves no data
2
+ // for a target update motion clause with an iterator modifier, at
3
+ // HSA_XNACK=0 (separate host and device memory).
4
+ // The iterator k = 0:1 has the one value 0 (5.2 §3.2.6 p.67: i0 = begin,
5
+ // i0 < end), so to(iterator(k = 0:1): a[k:n - k]) is to(a[0:n]): the
6
+ // target update makes the device copy of a consistent with the host
7
+ // (5.2 §13.9 p.289). Expected: to iterator: bad= 0 (from_iter: the same
8
+ // with from(iterator(k = 0:1): b[k:n - k]) after a device write).
9
+ // Observed (tuolumne, MI300A, 2026-10-22, 3 runs each, -O2,
10
+ // OMP_TARGET_OFFLOAD=mandatory):
11
+ // - AFAR amdclang 24.0.0git at HSA_XNACK=0: to iterator: bad= 64 (and
12
+ // from iterator: bad= 64): nothing is copied; the same update without
13
+ // the iterator, to(a[0:n]), gives bad= 0. Correct at HSA_XNACK=1 (one
14
+ // copy of the data).
15
+ // - CCE craycc 19, 20, 21: reject the iterator modifier of to/from (the
16
+ // catalog's to.iterator and from.iterator C programs: "call to
17
+ // undeclared function").
18
+ // The catalog's C to.iterator and from.iterator programs (5.2, 6.0) fail
19
+ // on AFAR at HSA_XNACK=0 because of it, and so does the C map.iterator
20
+ // program: target enter data map(iterator(k = 1:2), to: w[k:n / 2 - k])
21
+ // (one value, the section w[1:31]) leaves w[1] not present in copy mode. AFAR amdflang rejects the Fortran
22
+ // form ("not yet implemented").
23
+ // AFAR: amdclang -fopenmp --offload-arch=gfx942 -fopenmp-version=52 -O2
24
+ // Run: OMP_TARGET_OFFLOAD=mandatory HSA_XNACK=0 ./a.out
25
+ #include <stdio.h>
26
+ enum { n = 64 };
27
+ int main(void) {
28
+ int a[n], b[n], k, bad = 0;
29
+ for (int i = 0; i < n; i++) { a[i] = i; b[i] = 0; }
30
+ #pragma omp target enter data map(to: a) map(alloc: b)
31
+ for (int i = 0; i < n; i++) a[i] += 10;
32
+ #pragma omp target update to(iterator(k = 0:1): a[k:n - k])
33
+ #pragma omp target map(alloc: a, b)
34
+ for (int i = 0; i < n; i++) b[i] = a[i];
35
+ #pragma omp target update from(b)
36
+ #pragma omp target exit data map(release: a, b)
37
+ for (int i = 0; i < n; i++) bad += b[i] != i + 10;
38
+ printf("to iterator: bad= %d\n", bad);
39
+ return 0;
40
+ }
41
+ // site:
42
+ // title: amdclang at HSA_XNACK=0: target update with an iterator modifier moves no data
43
+ // control: ../vendor/checks/src/afar/control/afar-c-update-iterator-copy-mode-control.c to(a[0:n]) instead of to(iterator(k = 0:1):
44
+ // + a[k:n - k])
45
+ // end site
@@ -0,0 +1,31 @@
1
+ // The C form of afar-xnack1-target-is-present.f90.
2
+ // After target enter data map(to: a), omp_target_is_present must return
3
+ // true (5.2 §18.8.3 p.389; the enter data creates a corresponding storage
4
+ // block, which may share storage with the original, 5.2 §5.8.3 p.153).
5
+ // Expected: after enter data: present= 1, after exit data: present= 0
6
+ // Observed (tuolumne, MI300A, 2026-10-22, 3 runs each, -O2,
7
+ // OMP_TARGET_OFFLOAD=mandatory):
8
+ // - AFAR amdclang 24.0.0git at HSA_XNACK=1: present= 0 after enter data;
9
+ // at HSA_XNACK=0: present= 1.
10
+ // - CCE craycc 19.0.0: present= 1 / 0 in both modes.
11
+ // AFAR: amdclang -fopenmp --offload-arch=gfx942 -fopenmp-version=52 -O2
12
+ // CCE: craycc -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa
13
+ // -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx942 -fopenmp-version=52 -O2
14
+ // Run: OMP_TARGET_OFFLOAD=mandatory HSA_XNACK=1 ./a.out
15
+ #include <stdio.h>
16
+ #include <omp.h>
17
+ int main(void) {
18
+ int a[64], d = omp_get_default_device();
19
+ for (int i = 0; i < 64; i++) a[i] = 1;
20
+ #pragma omp target enter data map(to: a)
21
+ printf("after enter data: present= %d\n", omp_target_is_present(a, d));
22
+ #pragma omp target exit data map(release: a)
23
+ printf("after exit data: present= %d\n", omp_target_is_present(a, d));
24
+ return 0;
25
+ }
26
+ // site:
27
+ // title: AFAR offload runtime at HSA_XNACK=1: omp_target_is_present returns false after target enter data, and map(present) of an
28
+ // + absent item does not terminate
29
+ // control: ../vendor/checks/src/afar/control/afar-c-xnack1-target-is-present-control.c run at HSA_XNACK=0
30
+ // same_as: afar-xnack1-target-is-present
31
+ // end site
@@ -0,0 +1,27 @@
1
+ program p
2
+ implicit none
3
+ character :: ch
4
+ character(len=4) :: s
5
+ integer :: k
6
+ ch = 'a'; s = 'abcd'; k = 1
7
+ !$omp target
8
+ ch = 'b'; s = 'wxyz'; k = 2
9
+ !$omp end target
10
+ print '(a,a,a,a,a,i0)', 'ch=', ch, ' s=', s, ' k=', k
11
+ end program
12
+ ! site:
13
+ ! title: amdflang: a Fortran character scalar referenced in a target region is treated as a firstprivate scalar (writes lost)
14
+ ! control: ../vendor/checks/src/afar/control/afar-cce19-character-defaultmap-control.f90 ch and s mapped explicitly: map(tofrom:
15
+ ! + ch, s)
16
+ ! end site
17
+ ! spec (requirement): In Fortran a character variable is not a scalar variable for OpenMP: the scalar variable
18
+ ! definition excludes the character type.
19
+ ! "For Fortran, a scalar variable with intrinsic type, as defined by the base language, excluding character type."
20
+ ! (5.2 §1.2.6 p.14 l.7-8)
21
+ ! spec (requirement): A variable referenced in a target construct that is not a scalar is implicitly mapped with
22
+ ! map-type tofrom, so a character variable is mapped and its modification is visible after the region.
23
+ ! "If a variable is not a scalar then it is treated as if it had appeared in a map clause with a map-type of tofrom."
24
+ ! (5.2 §5.8.1 p.149 l.4-5)
25
+ ! spec (this program): ch and s are character variables referenced in the target region with no map or defaultmap
26
+ ! clause, so both are implicitly mapped tofrom and come back as b and wxyz; amdflang treats them as firstprivate
27
+ ! scalars and the writes are lost (k, an integer scalar, is firstprivate and keeps its value).
@@ -0,0 +1,23 @@
1
+ program t
2
+ implicit none
3
+ integer :: c, r
4
+ r = 0
5
+ !$omp target map(from: r)
6
+ c = 7
7
+ !$omp task default(shared)
8
+ c = 42
9
+ !$omp end task
10
+ !$omp taskwait
11
+ r = c
12
+ !$omp end target
13
+ print *, 'r=', r
14
+ end program
15
+ ! site:
16
+ ! title: ftn/craycc: constructs documented as unsupported in offload regions (single, masked, task, ordered, scan) give internal
17
+ ! + compiler errors or device link failures instead of a diagnostic
18
+ ! control: ../vendor/checks/src/afar/control/afar-cce19-task-in-target-ice-control.f90 the task and taskwait constructs removed
19
+ ! + (the task
20
+ ! + body
21
+ ! + kept)
22
+ ! same_as: cce19-target-parallel-single-ice
23
+ ! end site
@@ -0,0 +1,24 @@
1
+ /* Finding (C): AFAR amdclang hangs on requires device_safesync.
2
+
3
+ Legal OpenMP 6.0 C (6.0 §10.5.1.7: device_safesync is a requires
4
+ clause; without an argument it means device_safesync(true)).
5
+
6
+ Observed (2026-10-19): amdclang (AFAR 24.0.0git, drop 24.3.0) does not
7
+ finish on this file: killed after 90 s with
8
+ `-fopenmp -fopenmp-version=60 --offload-arch=gfx942 -c`, after 300 s
9
+ with `-fopenmp -fopenmp-version=60 -fsyntax-only`, and after 30 s with
10
+ `-fopenmp-version=52 -fsyntax-only` (where the clause is unknown and
11
+ should be diagnosed). The omp60-c-clause-device_safesync programs time
12
+ out in compilation. CCE craycc 19.0.0, 20.0.2 and 21.0.3 stop at once:
13
+ "warning: extra tokens at the end of '#pragma omp requires' are
14
+ ignored" and "error: expected at least one clause on '#pragma omp
15
+ requires' directive" (the clause is unknown to them). AFAR amdflang
16
+ compiles and runs the Fortran form (`!$omp requires device_safesync`;
17
+ omp60-clause-device_safesync: unobservable). */
18
+ #pragma omp requires device_safesync
19
+ int main(void) { return 0; }
20
+ // site:
21
+ // title: amdclang -fopenmp-version=60: compile does not finish on #pragma omp requires device_safesync
22
+ // control: ../vendor/checks/src/afar/control/afar-clang-requires-device-safesync-hang-control.c another requires clause,
23
+ // + atomic_default_mem_order(seq_cst)
24
+ // end site
@@ -0,0 +1,34 @@
1
+ program p
2
+ implicit none
3
+ integer :: a(10), i, p1
4
+ p1 = 3
5
+ !$omp target firstprivate(p1) map(from: a)
6
+ do i = 1, 10
7
+ a(i) = p1
8
+ end do
9
+ !$omp end target
10
+ !$omp target map(to: p1) map(tofrom: a)
11
+ do i = 1, 10
12
+ a(i) = a(i) + p1
13
+ end do
14
+ !$omp end target
15
+ print *, 'a(3) =', a(3)
16
+ end program p
17
+ ! site:
18
+ ! title: amdflang: firstprivate(p1) on one target and map(to: p1) on a later target rejected as if on the same construct
19
+ ! control: ../vendor/checks/src/afar/control/afar-flang-firstprivate-map-two-targets-control.f90 map(to: p1) instead of
20
+ ! + firstprivate(p1)
21
+ ! + on the
22
+ ! + first target
23
+ ! end site
24
+ ! spec (requirement): The data environment of each target task is created from the data-sharing and data-mapping
25
+ ! clauses on that one target construct, so clauses on different target constructs do not interact.
26
+ ! "The data environment of the target task is created according to the data-sharing and data-mapping attribute clauses
27
+ ! on the target construct" (5.2 §13.8 p.284 l.19-21)
28
+ ! spec (requirement): A firstprivate list item on a target construct is initialized from the original list item that
29
+ ! exists before that construct.
30
+ ! "In addition, the new list item is initialized from the original list item that exists before the construct." (5.2
31
+ ! §5.4.4 p.112 l.11-12)
32
+ ! spec (this program): p1 is firstprivate on the first target construct and appears in map(to:) only on the second,
33
+ ! separate target construct, so no list item has two attributes on one construct; amdflang rejects the second target
34
+ ! as if both clauses were on the same construct.
@@ -0,0 +1,27 @@
1
+ program p
2
+ implicit none
3
+ integer :: r, i
4
+ r = 0
5
+ !$omp target teams map(tofrom: r)
6
+ !$omp loop bind(teams) reduction(+: r)
7
+ do i = 1, 10
8
+ r = r + i
9
+ end do
10
+ !$omp end target teams
11
+ print *, 'r =', r
12
+ end program p
13
+ ! site:
14
+ ! title: amdflang: reduction on loop bind(teams) nested in a target teams region rejected
15
+ ! control: ../vendor/checks/src/afar/control/afar-flang-loop-bind-teams-reduction-control.f90 bind(teams) removed (the loop binds
16
+ ! + to the
17
+ ! + teams
18
+ ! + region by default)
19
+ ! end site
20
+ ! spec (requirement): The reduction clause is permitted on the loop construct.
21
+ ! "bind, collapse, lastprivate, order, private, reduction" (5.2 §11.7 p.257 l.4)
22
+ ! spec (requirement): The behavior of a reduction clause on a loop with bind(teams) is unspecified only when the loop
23
+ ! is not nested inside a teams construct (and executes on a non-host device); nested inside teams it is specified.
24
+ ! "then the behavior of a reduction clause that appears on the corresponding loop construct is unspecified if the
25
+ ! construct is not nested inside a teams construct." (5.2 §11.7.1 p.259 l.5-7)
26
+ ! spec (this program): The loop bind(teams) reduction(+: r) is strictly nested in the teams region of target teams,
27
+ ! the case the restriction leaves specified, so r must be 55; amdflang rejects the reduction.
@@ -0,0 +1,31 @@
1
+ program p
2
+ implicit none
3
+ integer :: r, i
4
+ r = 0
5
+ !$omp taskgroup task_reduction(max: r)
6
+ !$omp target in_reduction(max: r)
7
+ do i = 1, 10
8
+ r = max(r, i)
9
+ end do
10
+ !$omp end target
11
+ !$omp end taskgroup
12
+ print *, 'r =', r
13
+ end program p
14
+ ! site:
15
+ ! title: amdflang: task_reduction(max: r) / in_reduction(max: r) rejected ("Internal: no symbol found for 'max'")
16
+ ! control: ../vendor/checks/src/afar/control/afar-flang-task-reduction-max-control.f90 the reduction identifier + instead of max
17
+ ! + (r = r + i)
18
+ ! end site
19
+ ! spec (requirement): In Fortran the intrinsic procedure names max and min are OpenMP reduction identifiers, usable
20
+ ! wherever a reduction identifier is.
21
+ ! "following intrinsic procedure names: max, min, iand, ior, ieor." (5.2 §5.5.1 p.124 l.24)
22
+ ! spec (requirement): The task_reduction clause on a taskgroup specifies a reduction among tasks.
23
+ ! "The task_reduction clause is a reduction scoping clause, as described in Section 5.5.6, that specifies a reduction
24
+ ! among tasks." (5.2 §5.5.9 p.137 l.14-15)
25
+ ! spec (requirement): An in_reduction clause makes a task a participant in a task reduction defined by an enclosing
26
+ ! task_reduction clause with the same reduction identifier.
27
+ ! "defines a task to be a participant in a task reduction that is defined by an enclosing region for a matching list
28
+ ! item that appears in a task_reduction clause" (5.2 §5.5.10 p.138 l.11-13)
29
+ ! spec (this program): task_reduction(max: r) on a taskgroup and in_reduction(max: r) on the enclosed target use the
30
+ ! intrinsic max as reduction identifier for an integer; amdflang rejects both clauses with Internal: no symbol found
31
+ ! for max.
@@ -0,0 +1,22 @@
1
+ program p
2
+ implicit none
3
+ integer :: a(10), i
4
+ a = 0
5
+ !$omp target parallel do thread_limit(8) map(from: a)
6
+ do i = 1, 10
7
+ a(i) = i
8
+ end do
9
+ print *, 'a(3) =', a(3)
10
+ end program p
11
+ ! site:
12
+ ! title: amdflang: thread_limit on target parallel do rejected
13
+ ! control: ../vendor/checks/src/afar/control/afar-flang-thread-limit-target-parallel-do-control.f90 thread_limit(8) removed
14
+ ! end site
15
+ ! spec (requirement): The thread_limit clause is permitted on the target construct.
16
+ ! "in_reduction, is_device_ptr, map, nowait, private, thread_limit," (5.2 §13.8 p.284 l.5)
17
+ ! spec (requirement): On a combined construct the thread_limit clause applies to every leaf construct that permits it,
18
+ ! so it is accepted on target parallel do and takes effect on the target leaf.
19
+ ! "The effect of the shared, default, thread_limit, or order clause is as if it is applied to all leaf constructs that
20
+ ! permit the clause." (5.2 §17.2 p.340 l.31-32)
21
+ ! spec (this program): thread_limit(8) on target parallel do is applied to the target leaf construct, which permits
22
+ ! the clause; amdflang rejects the clause on the combined construct.
@@ -0,0 +1,29 @@
1
+ ! OpenMP 5.0: linear(ref(x)) on declare simd with x a scalar dummy argument.
2
+ ! 5.0 §2.19.4.6 p.293: "The ref or uval modifier can only be used if the
3
+ ! list-item is a dummy argument without the VALUE attribute." and "If the
4
+ ! ref modifier is specified, variables with the ALLOCATABLE attribute,
5
+ ! assumed-shape arrays and polymorphic variables may not appear in the
6
+ ! linear clause." -- so a scalar dummy is the legal 5.0 form.
7
+ ! (5.2 §5.4.6 p.119 reverses this: with ref the item must be polymorphic,
8
+ ! assumed-shape or ALLOCATABLE.) Expected with -fopenmp-version=50: accepted.
9
+ module m
10
+ contains
11
+ integer function lf(x)
12
+ !$omp declare simd(lf) linear(ref(x))
13
+ integer, intent(in) :: x
14
+ lf = 2*x + 1
15
+ end function lf
16
+ end module m
17
+ program p
18
+ use m
19
+ implicit none
20
+ integer :: i, b(4)
21
+ do i = 1, 4
22
+ b(i) = lf(i)
23
+ end do
24
+ print *, b
25
+ end program p
26
+ ! site:
27
+ ! disposition: out-of-scope host-only construct (declare simd on a host procedure, no target region): outside the device-offload
28
+ ! + scope; the README does not mark it out of scope
29
+ ! end site
@@ -0,0 +1,44 @@
1
+ ! loop bind(thread) closely nested in teams (README.md). Expected: tot= 64 64 64 64,
2
+ ! which CCE prints as `tot= 4*64` (a list-directed repeat count: the same values,
3
+ ! a correction). Each team's mine is private (teams private(tm, mine)) and the loop's
4
+ ! binding thread set is the encountering thread, so no race (offload.engine.prerun's race rule
5
+ ! flags mine: a false positive).
6
+ program t
7
+ use omp_lib, only: omp_get_team_num
8
+ implicit none
9
+ integer, parameter :: n = 64
10
+ integer :: tot(4), tm, mine, i
11
+ tot = 0
12
+ !$omp target map(tofrom: tot)
13
+ !$omp teams num_teams(4) private(tm, mine)
14
+ tm = omp_get_team_num()
15
+ mine = 0
16
+ !$omp loop bind(thread)
17
+ do i = 1, n
18
+ mine = mine + 1
19
+ end do
20
+ !$omp end loop
21
+ tot(tm + 1) = mine
22
+ !$omp end teams
23
+ !$omp end target
24
+ print *, 'tot=', tot
25
+ end program
26
+ ! site:
27
+ ! title: amdflang: loop bind(thread) closely nested in teams rejected ("BIND(TEAMS) must be specified")
28
+ ! control: ../vendor/checks/src/afar/control/afar-loop-bind-thread-in-teams-control.f90 the loop directive removed (a plain DO
29
+ ! + loop in
30
+ ! + each team)
31
+ ! end site
32
+ ! spec (requirement): With bind(thread) the binding region of a loop construct is not defined.
33
+ ! "if binding is thread then the binding region is not defined" (5.2 §11.7.1 p.258 l.24-25)
34
+ ! spec (requirement): When the binding region is not defined, the binding thread set is the encountering thread, so
35
+ ! each thread executes all iterations of the loop it encounters.
36
+ ! "If the binding region is not defined, then the binding thread set is the encountering thread." (5.2 §11.7.1 p.258
37
+ ! l.31-32)
38
+ ! spec (requirement): The bind clause is required only when the loop construct is not nested inside another OpenMP
39
+ ! construct.
40
+ ! "If a loop construct is not nested inside another OpenMP construct then the bind clause must be present." (5.2 §11.7
41
+ ! p.258 l.1-2)
42
+ ! spec (this program): The loop bind(thread) is closely nested in teams, so each team's initial thread runs all 64
43
+ ! iterations on its private mine and tot is 64 for every team; amdflang rejects the construct with BIND(TEAMS) must
44
+ ! be specified.
@@ -0,0 +1,38 @@
1
+ program p
2
+ implicit none
3
+ integer, parameter :: n = 16, m = 4
4
+ integer :: o1(n, m), i, j
5
+ integer(8) :: cs
6
+ o1 = 0
7
+ call kp(o1)
8
+ cs = sum(int(o1, 8))
9
+ print '(a,i0,a,i0)', 'RESULT checksum=', cs, ' ran_on_host=', 0
10
+ contains
11
+ subroutine kp(o1)
12
+ integer, intent(inout) :: o1(:, :)
13
+ integer :: i, j
14
+ !$omp target teams distribute parallel do map(tofrom: o1)
15
+ do i = 1, n
16
+ !$omp simd nontemporal(o1)
17
+ do j = 1, m
18
+ o1(i, j) = i + j
19
+ end do
20
+ end do
21
+ end subroutine kp
22
+ end program p
23
+ ! site:
24
+ ! title: amdflang: "verification of lowering to FIR failed" for nontemporal on an assumed-shape dummy
25
+ ! control: ../vendor/checks/src/afar/control/afar-nontemporal-assumed-shape-ice-control.f90 nontemporal(o1) removed from the simd
26
+ ! + directive
27
+ ! end site
28
+ ! spec (requirement): The nontemporal clause on a simd construct takes a list of variables, and its text states no
29
+ ! restriction on their form, so an assumed-shape dummy array is a valid list item.
30
+ ! "The nontemporal clause specifies that accesses to the storage locations to which the list items refer have low
31
+ ! temporal locality across the iterations in which those storage locations are accessed." (5.2 §10.4.1 p.236
32
+ ! l.21-22)
33
+ ! spec (requirement): The list items of nontemporal may also appear in data-environment attribute clauses.
34
+ ! "The list items of the nontemporal clause may also appear as list items of data-environment attribute clauses." (5.2
35
+ ! §10.4.1 p.236 l.23-24)
36
+ ! spec (this program): nontemporal(o1) names an assumed-shape dummy that is also mapped by the enclosing target
37
+ ! construct; the spec text has no restriction against assumed-shape list items (it does not mention them), and
38
+ ! amdflang stops with a failed lowering to FIR.
@@ -0,0 +1,41 @@
1
+ module fuzz_dmod
2
+ implicit none
3
+ type :: pair_t
4
+ integer :: x, y
5
+ end type pair_t
6
+ !$omp declare reduction(padd: pair_t: omp_out = &
7
+ !$omp& pair_t(omp_out%x + omp_in%x, omp_out%y + omp_in%y)) &
8
+ !$omp& initializer(omp_priv = pair_t(0, 0))
9
+ end module fuzz_dmod
10
+ program fuzz_prog
11
+ use fuzz_dmod
12
+ implicit none
13
+ integer, parameter :: n = 64
14
+ type(pair_t) :: rp
15
+ integer :: i
16
+ rp = pair_t(1, 2)
17
+ !$omp target teams distribute parallel do reduction(padd: rp) map(tofrom: rp)
18
+ do i = 1, n
19
+ rp = pair_t(rp%x + i, rp%y + mod(i, 3))
20
+ end do
21
+ print '(a,i0,a,i0)', 'RESULT checksum=', rp%x * 1000 + rp%y, ' ran_on_host=', 0
22
+ end program fuzz_prog
23
+ ! site:
24
+ ! title: amdflang: declare reduction on a derived type used in a target loop fails at the device link (flang runtime symbols
25
+ ! + undefined)
26
+ ! control: ../vendor/checks/src/afar/control/afar-udr-derived-type-link-control.f90 the same reduction on a host parallel do (no
27
+ ! + target
28
+ ! + teams
29
+ ! + distribute)
30
+ ! end site
31
+ ! spec (requirement): A declare reduction directive declares a user-defined reduction identifier usable in a reduction
32
+ ! clause.
33
+ ! "The declare reduction directive declares a reduction-identifier that can be used in a reduction clause as a
34
+ ! user-defined reduction." (5.2 §5.5.11 p.139 l.18-19)
35
+ ! spec (requirement): The identifier can be used in a reduction clause on variables of the types listed in the
36
+ ! directive, here a derived type.
37
+ ! "The reduction-identifier can later be used in a reduction clause that uses variables of the types specified in the
38
+ ! declare reduction directive." (5.2 §5.5.11 p.139 l.24-26)
39
+ ! spec (this program): The module declares reduction(padd: pair_t) and the program uses padd on a target teams
40
+ ! distribute parallel do; the compiler must generate the combiner and initializer for the device, and amdflang
41
+ ! instead fails at the device link on undefined flang runtime symbols.
@@ -0,0 +1,53 @@
1
+ ! AFAR (amdflang 24.0.0git, drop 24.3.0), MI300A gfx942, -O2:
2
+ ! an `atomic` min update of a mapped scalar inside a `parallel do` nested in
3
+ ! `target teams distribute`, with an allocatable array written in the same
4
+ ! loop, faults at HSA_XNACK=1 ("memory access fault ... Write access to a
5
+ ! read-only page"); at HSA_XNACK=0 it prints r=0 s=0 (correct).
6
+ ! Needed: an array written in the loop, the inner parallel do (without it: correct), and an
7
+ ! atomic update whose right-hand side depends on i. An atomic add with a constant right-hand
8
+ ! side is correct; r = r + mod(i, n) faults like the atomic min. In this combined form the
9
+ ! allocatable o1 faults and an explicit-shape array is correct; with separate directives the
10
+ ! explicit-shape array faults too (18-program matrix: data/reports/fuzz5-oop-afar.md, cluster C).
11
+ ! map(always) or an explicit map of o1 do not matter.
12
+ ! Hand-reduced from data/findings/fuzz/b2-183-afar.f90.
13
+ ! amdflang -fopenmp --offload-arch=gfx942 -O2 afar-xnack1-atomic-min-nested-parallel.f90
14
+ ! HSA_XNACK=1 OMP_TARGET_OFFLOAD=mandatory ./a.out
15
+ program p
16
+ implicit none
17
+ integer, parameter :: n = 24, m = 2
18
+ integer, allocatable :: o1(:,:)
19
+ integer :: i, j, r
20
+ allocate(o1(n, m))
21
+ o1 = 0
22
+ r = 7
23
+ !$omp target teams distribute map(tofrom: r)
24
+ do i = 1, n
25
+ !$omp parallel do
26
+ do j = 1, m
27
+ o1(i, j) = 0
28
+ !$omp atomic
29
+ r = min(r, mod(i, n))
30
+ end do
31
+ !$omp end parallel do
32
+ end do
33
+ !$omp end target teams distribute
34
+ print '(a,i0,a,i0)', 'r=', r, ' s=', sum(o1)
35
+ end program p
36
+ ! site:
37
+ ! title: amdflang at HSA_XNACK=1: atomic min in a parallel do nested in target teams distribute with an allocatable array faults
38
+ ! + (write to a read-only page)
39
+ ! control: ../vendor/checks/src/afar/control/afar-xnack1-atomic-min-nested-parallel-control.f90 o1 an explicit-shape array
40
+ ! + instead of an
41
+ ! + allocatable
42
+ ! end site
43
+ ! spec (requirement): In Fortran an atomic update may have the form x = intrinsic-procedure-name(x, expr-list) where
44
+ ! the intrinsic is MAX or MIN.
45
+ ! "x = intrinsic-procedure-name (x, expr-list)" (5.2 §4.3.1.3 p.81 l.14)
46
+ ! spec (requirement): The atomic construct makes the access to the storage location atomic, so concurrent updates by
47
+ ! the threads of nested parallel regions produce no indeterminate value.
48
+ ! "The atomic construct ensures that a specific storage location is accessed atomically so that possible simultaneous
49
+ ! reads and writes by multiple threads do not result in indeterminate values." (5.2 §15.8.4 p.311 l.29-30)
50
+ ! spec (this program): The atomic min update of the mapped scalar r runs in a parallel do nested in target teams
51
+ ! distribute and must give r = 0; the spec has no text on memory faults with unified-memory settings (HSA_XNACK=1 is
52
+ ! a vendor runtime setting), so the cited text states only that the update must complete correctly, and the write
53
+ ! access fault to a read-only page is a deviation from it.