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,177 @@
1
+ # Hand derivations of catalog programs' expected results.
2
+ #
3
+ # Each entry derives, from the spec text alone (section and page of the
4
+ # program's own version), the values a conforming execution of the program
5
+ # produces and shows that its check accepts them (value check=pass) or that
6
+ # the run must end in runtime error termination (value error_termination).
7
+ # offload.engine.gen writes the text into the program header as
8
+ # `! derivation (<value>): <text>` (legal programs only; the header is not
9
+ # part of the audited body, offload.engine.mutate.body_sha); tools/derive/expected.py
10
+ # reads it as the `derivation` source (offload.engine.expected.
11
+ # derivation_evidence), which counts next to the program's own oracle (the
12
+ # brief: "an independent hand-derived expected value with the derivation
13
+ # written in the program header"). A derivation is written by reading the
14
+ # program as generated, not the generator's check code, and states every
15
+ # assumption that is not a spec guarantee. Programs whose expected value
16
+ # the spec does not fix (it depends on the memory mode or on an
17
+ # implementation-defined resource; the relaxed
18
+ # induction forms, whose new list item at the start of a chunk the text
19
+ # does not fix) have no entry, and no entry may rest on a ruling of this
20
+ # project (tests/engine/test_gen.py); data/reports/
21
+ # triage-2026-10.md lists them.
22
+ #
23
+ # Keys: atom, versions, value, text (one line; {cite:<key>} is replaced by
24
+ # the version's entry in `cites`).
25
+ cites:
26
+ linear: {50: "5.0 §2.19.4.6 p.292", 52: "5.2 §5.4.6 p.118", 60: "6.0 §7.5.6 p.233"}
27
+ declare_simd: {50: "5.0 §2.9.3.3 p.116", 52: "5.2 §7.7 p.202", 60: "6.0 §9.8 p.341"}
28
+ scan: {50: "5.0 §2.9.6 p.132", 52: "5.2 §5.6 p.141", 60: "6.0 §7.7 p.266"}
29
+ allocate: {50: "5.0 §2.11.4 p.159", 52: "5.2 §6.6 p.179", 60: "6.0 §8.6 p.314"}
30
+ ancestor: {50: "5.0 §2.12.5 p.174", 52: "5.2 §13.2 p.276 and §8.2.1 p.212", 60: "6.0 §15.2 p.451 and §10.5.1.3 p.359"}
31
+ nohost: {52: "5.2 §13.1 p.275", 60: "6.0 §15.1 p.450"}
32
+ iterator: {52: "5.2 §3.2.6 p.67", 60: "6.0 §5.2.6 p.169"}
33
+ update: {50: "5.0 §2.12.6 p.176", 52: "5.2 §13.9 p.289", 60: "6.0 §15.9 p.465"}
34
+ use_device_ptr: {52: "5.2 §5.4.8 p.121", 60: "6.0 §7.5.8 p.236"}
35
+ is_device_ptr: {52: "5.2 §5.4.7 p.120", 60: "6.0 §7.5.7 p.235"}
36
+ map: {50: "5.0 §2.19.7.1 p.315", 52: "5.2 §5.8.3 p.152", 60: "6.0 §7.9.6 p.283"}
37
+ mapper: {50: "5.0 §2.19.7.3 p.326", 52: "5.2 §5.8.8 p.163 (Table 5.3)", 60: "6.0 §7.9.2 p.276 (Table 7.5) and §7.9.10 p.293"}
38
+ task_default: {50: "5.0 §2.19.1.1 p.273 and §2.19.4.1 p.283", 52: "5.2 §5.1.1 p.100 and §5.4.1 p.109", 60: "6.0 §7.1.1 p.211 and §7.5.1 p.223"}
39
+ has_device_addr: {52: "5.2 §5.4.9 p.123 and §5.4.10 p.123", 60: "6.0 §7.5.9 p.237 and §7.5.10 p.238"}
40
+ schedule: {50: "5.0 §2.9.2 pp.103-104", 52: "5.2 §11.5.3 p.252", 60: "6.0 §13.6.3 p.418 and Glossary 'chunk' p.31"}
41
+ dist_schedule: {50: "5.0 §2.9.4.1 pp.121-122 and §2.9.2 p.103 ('chunks')", 52: "5.2 §11.6.1 p.256", 60: "6.0 §13.7.1 p.422 and Glossary 'chunk' p.31"}
42
+ num_teams: {50: "5.0 §2.7 p.83", 52: "5.2 §10.2.1 p.233", 60: "6.0 §12.2.1 p.397"}
43
+ loop_bind: {50: "5.0 §2.9.5 pp.129-130", 52: "5.2 §11.7 p.257 and §11.7.1 p.258", 60: "6.0 §13.8 p.423 and §13.8.1 p.424"}
44
+ character: {50: "5.0 §1.2.6 p.12", 52: "5.2 §1.2.6 p.14 and §5.8.1 p.148", 60: "6.0 Glossary p.94 and §7.9.3 p.276"}
45
+ entries:
46
+ - atom: omp.clause.linear
47
+ versions: [50, 52, 60]
48
+ value: check=pass
49
+ text: "linear(x: 1) on the parallel do ({cite:linear}): on the logical iteration of i (number i - 1) the new x is the original x (3) plus (i - 1)*1, so x - (i + 2) = 0 and b(i) = 2*a(i) + 1 = 2*i + 1 = ref(i); the body's x = x + 1 keeps x on that sequence, and the value of the sequentially last iteration, taken as the new x at the end of that iteration (3 + n after its increment, as the OpenMP Examples' linear programs assume), is assigned to the original x, which the target maps tofrom: x = 1*n + 3; the check accepts"
50
+ - atom: omp.clause.linear.val
51
+ versions: [52, 60]
52
+ value: check=pass
53
+ text: "linear(x: val, step(1)) ({cite:linear}): for a variable that is not a reference the val modifier is the default value semantics, so as without it: the new x on the iteration of i is 3 + (i - 1), b(i) = 2*i + 1 = ref(i), and the sequentially last iteration's value 3 + n is assigned to x (mapped tofrom): x = 1*n + 3; the check accepts"
54
+ - atom: omp.clause.linear.step
55
+ versions: [52, 60]
56
+ value: check=pass
57
+ text: "linear(x: step(2)) ({cite:linear}): the new x on the iteration of i is 3 + 2*(i - 1) = 2*i + 1, so x - (2*i + 1) = 0 and b(i) = 2*i + 1 = ref(i); the body adds the step, and the sequentially last iteration's value 3 + 2*n is assigned to x (mapped tofrom): x = 2*n + 3; the check accepts"
58
+ - atom: omp.clause.linear.step_simple_modifier
59
+ versions: [50, 52, 60]
60
+ value: check=pass
61
+ text: "linear(x: 2), the step written as a simple modifier ({cite:linear}): the new x on the iteration of i is 3 + 2*(i - 1) = 2*i + 1, so b(i) = 2*i + 1 = ref(i); the sequentially last iteration's value 3 + 2*n is assigned to x (mapped tofrom): x = 2*n + 3; the check accepts"
62
+ - atom: omp.clause.linear.ref
63
+ versions: [50, 52]
64
+ value: check=pass
65
+ text: "the linear clause is on the declare simd directive of lf ({cite:declare_simd}, {cite:linear}): it describes the arguments of lf's SIMD versions; the target region calls lf from a sequential loop, where lf(x) returns 2*x(1) + 1 (2*x + 1 in the 5.0 form), so b(i) = 2*a(i) + 1 = ref(i) whichever version runs; the check accepts"
66
+ - atom: omp.clause.linear.uval
67
+ versions: [52]
68
+ value: check=pass
69
+ text: "the linear(x: uval) clause is on the declare simd directive of lf ({cite:declare_simd}, {cite:linear}): it describes lf's SIMD versions; the target region calls lf from a sequential loop and lf(x) returns 2*x + 1, so b(i) = 2*a(i) + 1 = ref(i); the check accepts"
70
+ - atom: omp.clause.reduction.inscan
71
+ versions: [50, 52, 60]
72
+ value: check=pass
73
+ text: "reduction(inscan, +: s) with scan inclusive(s) ({cite:scan}): the statement before the scan directive is the input phase, the one after it the scan phase, which sees the sum of the updates of every iteration up to and including its own; s starts at 0, so b(i) = a(1) + ... + a(i) = i*(i + 1)/2 = ref(i); the check accepts"
74
+ - atom: omp.clause.allocate
75
+ versions: [50, 52, 60]
76
+ value: check=pass
77
+ text: "allocate(t) with private(t) on the parallel do in a target region, allowed without an allocator because the unit has requires dynamic_allocators ({cite:allocate}): t is each thread's private copy, allocated with the default allocator; each iteration sets t = 2*a(i) before b(i) = t + 1, so b(i) = 2*i + 1 = ref(i); the check reads b only and accepts"
78
+ - atom: omp.clause.device.ancestor
79
+ versions: [50, 52, 60]
80
+ value: check=pass
81
+ text: "the nested target device(ancestor: 1) firstprivate(t) runs on the parent device of the enclosing target region (requires reverse_offload, {cite:ancestor}) and changes only its private t; the enclosing region computes b(i) = 2*a(i) + 1 on the device and b is mapped from, so b = ref; the check reads b only and accepts"
82
+ - atom: omp.clause.device_type.nohost
83
+ versions: [52]
84
+ value: check=pass
85
+ text: "declare target to(f) device_type(nohost) makes only a non-host version of f available ({cite:nohost}); f is called only inside the target region, where f(x) = 2*x + 1, so b(i) = 2*a(i) + 1 = ref(i) (b mapped from); the check accepts"
86
+ - atom: omp.clause.from.iterator
87
+ versions: [52, 60]
88
+ value: check=pass
89
+ text: "target enter data maps a (to) and b (alloc); the host adds 10 to a and target update to(a) copies it ({cite:update}), so the device's a(i) = i + 10 and the target region writes b(i) = 2*(i + 10) + 1 on the device; target update from(iterator(k = 1:1): b(k:n)) expands to from(b(1:n)) ({cite:iterator}), so the host's b is the device's: b = ref = 2*(i + 10) + 1; the check accepts"
90
+ - atom: omp.clause.to.iterator
91
+ versions: [52, 60]
92
+ value: check=pass
93
+ text: "target enter data maps a (to) and b (alloc); the host adds 10 to a and target update to(iterator(k = 1:1): a(k:n)) expands to to(a(1:n)) ({cite:iterator}, {cite:update}), so the device's a(i) = i + 10; the target region writes b(i) = 2*(i + 10) + 1 and target update from(b) copies it back: b = ref; the check accepts"
94
+ - atom: omp.clause.use_device_ptr
95
+ versions: [52]
96
+ value: check=pass
97
+ text: "target data maps a (to) and b (from); use_device_ptr(pa, pb) makes pa and pb the device addresses of a and b inside the construct ({cite:use_device_ptr}); the nested target has is_device_ptr(pa, pb) ({cite:is_device_ptr}), so pp and qq (c_f_pointer) alias the device copies and qq(i) = 2*pp(i) + 1 writes the device's b; the end of target data copies b back: b = ref; the check accepts"
98
+ - atom: omp.clause.is_device_ptr
99
+ versions: [52]
100
+ value: check=pass
101
+ text: "target data maps a (to) and b (from); use_device_ptr(pa, pb) makes pa and pb the device addresses of a and b ({cite:use_device_ptr}); the nested target has is_device_ptr(pa, pb), so they are used as device pointers there ({cite:is_device_ptr}) and qq(i) = 2*pp(i) + 1 writes the device's b; the end of target data copies b back: b = ref; the check accepts"
102
+ - atom: omp.clause.map.iterator
103
+ versions: [52, 60]
104
+ value: check=pass
105
+ text: "map(iterator(k = 1:1), to: w(k + 1:n/2)) expands to map(to: w(2:n/2)) ({cite:iterator}, {cite:map}): until the exit data, w(2) and w(n/2) are present and w(1) and w(n/2 + 1) are not, which the copy-mode-only presence checks assert (skipped when host and device share storage); the target region writes b(i) = 2*a(i) + 1 (b mapped from): b = ref; the check accepts in both memory modes"
106
+ - atom: omp.clause.map.mapper
107
+ versions: [50, 52, 60]
108
+ value: check=pass
109
+ text: "mapper mm maps q%v with map type to; map(mapper(mm), tofrom: s) applies it with the decayed map type: mapper to with clause tofrom gives to ({cite:mapper}); so s%v (1) is copied to the device and not back: the device writes b(i) = 2*a(i) + s%v = 2*i + 1 = ref(i), then s%v = 7 on the device only; in copy mode the host's s%v stays 1 (the copy-mode-only check), under shared storage that check is skipped; the check accepts"
110
+ - atom: omp.clause.map.present
111
+ versions: [52, 60]
112
+ value: error_termination
113
+ text: "the first target region maps a (to) and removes it at its end (reference count 0); the second target region has map(present, to: a), and on entry a is not present in the device data environment, so runtime error termination is performed ({cite:map}: 'If a map clause with a present map-type-modifier appears on a construct and on entry to the region the corresponding list item is not present in the device data environment, runtime error termination is performed'); the program never reaches continued = .true."
114
+ - atom: omp.clause.default.shared
115
+ versions: [50, 52, 60]
116
+ value: check=pass
117
+ text: "in the parallel region c is private (c = 7 per thread); the task has default(shared), so c in the task is shared, i.e. the generating implicit task's private c ({cite:task_default}); the task sets c = 42 and taskwait waits for it, so thread 0 sets r = 42 (r mapped from); b(i) = 2*a(i) + 1 on the device; the check accepts"
118
+ - atom: omp.clause.has_device_addr
119
+ versions: [52, 60]
120
+ value: check=pass
121
+ text: "target data maps a (to) and b (from) with use_device_addr(a, b): inside it a and b refer to their device storage, whose addresses differ from the host's in copy mode (the copy-mode-only checks); the nested target has has_device_addr(a, b), so it accesses that device storage directly ({cite:has_device_addr}) and writes b(i) = 2*a(i) + 1 there; the end of target data copies b back: b = ref; the check accepts"
122
+ - atom: omp.clause.defaultmap.private
123
+ versions: [60]
124
+ value: check=pass
125
+ text: "defaultmap(private) makes c and w private in the target region (6.0 §7.9.9 p.291; a and b keep their explicit maps); the region sets c = 1 and w(i) = 2*a(i) before reading them, so b(i) = w(i) + c = 2*i + 1 on the device and b is mapped from: b = ref; the check accepts"
126
+ - atom: omp.clause.firstprivate.saved
127
+ versions: [60]
128
+ value: check=pass
129
+ text: "the saved modifier affects only replay executions of a replayable construct (6.0 §7.2 p.215: 'The saved modifier has no effect if' the construct is not replayable), and nothing here is replayable, so firstprivate(saved: c) is firstprivate(c) (6.0 §7.5.4 p.227): every thread's c starts at the original 1 and grows by 100 per iteration it runs, so mod(c, 100) = 1 and b(i) = 2*i + 1 = ref(i); the original c (mapped tofrom) is not changed: c = 1; the check accepts"
130
+ - atom: omp.clause.induction.strict
131
+ versions: [60]
132
+ value: check=pass
133
+ text: "induction(step(1), strict, +: x): with strict the new x at the beginning of each iteration is the closed form 3 + (i - 1) and the original x gets the inductor applied to the last iteration's value, 3 + n (6.0 §7.6.13 p.258, §7.6.4 p.246); so b(i) = 2*i + 1 = ref(i) and x = n + 3 (mapped tofrom); the check accepts"
134
+ - atom: omp.clause.local
135
+ versions: [60]
136
+ value: check=pass
137
+ text: "declare_target local(dv) makes dv device-local: static storage duration, visible only to tasks on that device (6.0 Glossary p.44, §7.14 p.303, §7.1.1 p.211); the first target region sets the device's dv = 5, and the second, on the same device, reads that storage: b(i) = 2*a(i) + 5 - 4 = 2*i + 1 = ref(i) (b mapped from); the check accepts"
138
+ - atom: omp.directive.teams_workdistribute
139
+ versions: [60]
140
+ value: check=pass
141
+ text: "on_dev is a declare_target variable: the first target region sets the device's copy to 1, and it keeps its value on the device; teams workdistribute divides the array assignment b = 2*a + on_dev into units of work each executed once (6.0 §13.5 p.412), so b(i) = 2*i + 1 on the device, mapped from: b = ref; the check accepts"
142
+ - atom: omp.directive.target_teams_workdistribute
143
+ versions: [60]
144
+ value: check=pass
145
+ text: "on_dev is a declare_target variable: the first target region sets the device's copy to 1, and it keeps its value on the device; target teams workdistribute divides the array assignment b = 2*a + on_dev into units of work each executed once (6.0 §13.5 p.412), so b(i) = 2*i + 1 on the device, mapped from: b = ref; the check accepts"
146
+ - atom: omp.clause.dist_schedule
147
+ versions: [50, 52, 60]
148
+ value: check=pass
149
+ text: "num_teams(4) creates at most 4 teams (exactly 4 from 5.1, {cite:num_teams}); dist_schedule(static) without a chunk size divides the 64 iterations into contiguous non-empty chunks, at most one per initial team ({cite:dist_schedule}), so every iteration runs on one team, team(i) is a team number 0 .. nt - 1 and each team's iterations are one contiguous run, the two things dok tests (it tests no chunk size); nt >= 1 and b = ref; the check accepts"
150
+ - atom: omp.clause.dist_schedule.static
151
+ versions: [50, 52, 60]
152
+ value: check=pass
153
+ text: "num_teams(4) creates at most 4 teams (exactly 4 from 5.1, {cite:num_teams}); dist_schedule(static) without a chunk size divides the 64 iterations into contiguous non-empty chunks, at most one per initial team ({cite:dist_schedule}), so every iteration runs on one team, team(i) is a team number 0 .. nt - 1 and each team's iterations are one contiguous run, the two things dok tests (it tests no chunk size); nt >= 1 and b = ref; the check accepts"
154
+ - atom: omp.clause.dist_schedule.chunk_size
155
+ versions: [50, 52, 60]
156
+ value: check=pass
157
+ text: "dist_schedule(static, 4): chunks of 4 iterations assigned to the initial teams round-robin in team-number order ({cite:dist_schedule}), so iteration i runs on team mod((i - 1)/4, nt), which dok tests; nt >= 1 and b = ref; the check accepts"
158
+ - atom: omp.clause.schedule
159
+ versions: [50, 52, 60]
160
+ value: check=pass
161
+ text: "schedule(static) without a chunk size divides the 1000 iterations into contiguous non-empty chunks, at most one per thread ({cite:schedule}), so every iteration runs on one thread of the team, tid(i) is a thread number 0 .. nthr - 1 and each thread's iterations are one contiguous run, the two things sok tests (it tests no chunk size); nthr >= 1 (omp_get_num_threads) and b = ref; the check accepts"
162
+ - atom: omp.clause.schedule.static
163
+ versions: [50, 52, 60]
164
+ value: check=pass
165
+ text: "schedule(static) without a chunk size divides the 1000 iterations into contiguous non-empty chunks, at most one per thread ({cite:schedule}), so every iteration runs on one thread of the team, tid(i) is a thread number 0 .. nthr - 1 and each thread's iterations are one contiguous run, the two things sok tests (it tests no chunk size); nthr >= 1 (omp_get_num_threads) and b = ref; the check accepts"
166
+ - atom: omp.clause.schedule.chunk_size
167
+ versions: [50, 52, 60]
168
+ value: check=pass
169
+ text: "schedule(static, 4): chunks of 4 iterations assigned to the threads round-robin in thread-number order ({cite:schedule}), so iteration i runs on thread mod((i - 1)/4, nthr), which sok tests; nthr >= 1 and b = ref; the check accepts"
170
+ - atom: omp.clause.bind.thread
171
+ versions: [50, 52, 60]
172
+ value: check=pass
173
+ text: "loop bind(thread) in a parallel region: the binding thread set is the encountering thread, and each logical iteration is executed once per loop region by exactly one thread of that set ({cite:loop_bind}), so every thread runs all 64 iterations and writes hit(i, tid + 1) once each (distinct elements, so the concurrent iterations do not race): tot(t) = 64 for every thread; the team size is implementation defined and only threads 0 .. 1023 record (hit has 1024 columns), so all(tot(1:min(nthr, 1024)) == n) holds for any team size, and nthr >= 1; thread 0 writes b = ref; the check accepts"
174
+ - atom: omp.clause.defaultmap.character
175
+ versions: [50, 52, 60]
176
+ value: check=pass
177
+ text: "for Fortran a scalar variable excludes character type and a character variable is an aggregate ({cite:character}), so with no defaultmap clause ch and s are mapped tofrom and the device's ch = 'b', s = 'wxyz' come back, while the integer scalar k is firstprivate and the host's k stays 1; b = ref; the check (ch == 'b', s == 'wxyz', k == 1) accepts"
@@ -0,0 +1,40 @@
1
+ # Memory modes of the matrix.
2
+ #
3
+ # The headline run is HSA_XNACK=1 with transparent huge pages (what LC's
4
+ # example job script uses; on the MI300A it makes the runtime zero-copy).
5
+ # Copy mode (HSA_XNACK=0) runs only for the programs
6
+ # offload.engine.run_matrix.copy_mode_programs selects:
7
+ #
8
+ # - every program whose evidence is copy_mode_only (its check separates
9
+ # the construct from a no-op only in copy mode), and
10
+ # - the memory-sensitive programs below: their primary atom matches one of
11
+ # `atoms` (fnmatch patterns), or their id is listed in `programs`.
12
+ #
13
+ # `programs` holds the programs whose two modes differed in the full
14
+ # two-mode run of 2026-10-18 (results/support_table.csv, 9 program x
15
+ # toolchain pairs) that no atom pattern already covers. Status: provisional.
16
+ headline_xnack: 1
17
+ copy_xnack: 0
18
+ memory_sensitive:
19
+ atoms:
20
+ - pattern: omp.clause.map.present
21
+ why: >-
22
+ negative probe: the run must end in the runtime's error termination
23
+ on absent data; AFAR terminates only in copy mode (full run:
24
+ AFAR wrong_answer at HSA_XNACK=1, correct_on_device at 0, 5.2 and
25
+ 6.0)
26
+ - pattern: omp.clause.unified_shared_memory*
27
+ why: >-
28
+ requires unified_shared_memory, every form (bare, -required,
29
+ -directive_name): the program needs zero-copy memory, so copy mode
30
+ is where a toolchain must refuse or fail (full run: unobservable at
31
+ 1, crash or exit 255 at 0)
32
+ - pattern: omp.clause.map.mapper
33
+ why: >-
34
+ CCE 19 ran the map(mapper) program on the device at HSA_XNACK=1 and
35
+ fell back to the host at 0 (full run, 5.2)
36
+ programs:
37
+ - id: omp52-illegal-mapitem-map-001
38
+ why: >-
39
+ CCE 19 ran it on the device at HSA_XNACK=1 and fell back to the
40
+ host at 0 (full run); no atom pattern covers it
@@ -0,0 +1,373 @@
1
+ # Spec basis of the programs that have no separating oracle.
2
+ #
3
+ # A program whose atom no single run can separate from its absence carries
4
+ # one of three evidence categories (offload.engine.gen.NO_ORACLE), each with the
5
+ # spec sentence that makes it so:
6
+ # hint_only the spec lets an implementation ignore the form
7
+ # (a hint, an assertion the program makes, or a
8
+ # bound that one-at-a-time execution meets): the
9
+ # report reads "accepted; conforms vacuously"
10
+ # implementation_defined the spec leaves the behaviour to the
11
+ # implementation: "implementation-defined"
12
+ # equivalent_default the form is, by the spec, the behaviour without
13
+ # it: "equivalent to the default (no separable
14
+ # effect)"
15
+ # Atoms whose behaviour the spec fixes but whose program has no check for
16
+ # it are evidence "unverified" instead (offload.engine.gen.UNVERIFIED), never
17
+ # one of these.
18
+ #
19
+ # Read by offload/engine/gen.py (no_oracle_bases). Each basis id names, per
20
+ # version, a list of citations; the first is the sentence the header line
21
+ # `! basis:` and the support table quote, any others add context. Every
22
+ # `quote` is checked (tests/engine/test_gen.py) to occur verbatim (whitespace
23
+ # aside) in the cited section of results/spec_cache/openmp-<ver>.txt, and
24
+ # the page to lie in that section. `status: provisional` until the maintainer
25
+ # reviews it.
26
+ #
27
+ # bases.<id>:
28
+ # status provisional
29
+ # <ver>: [{cite: "OpenMP <ver> §<sec>, p.<n>", quote: "<sentence>"}, ...]
30
+
31
+ bases:
32
+ # --- hint_only -------------------------------------------------------------
33
+ simd_concurrency: # safelen: an upper bound on concurrency
34
+ status: provisional
35
+ 50:
36
+ - cite: "OpenMP 5.0 §2.9.3.1, p.112"
37
+ quote: "The number of iterations that are executed concurrently at any given time is implementation defined."
38
+ - cite: "OpenMP 5.0 §2.9.3.1, p.112"
39
+ quote: "The safelen clause specifies that no two concurrent iterations within a SIMD chunk can have a distance in the logical iteration space that is greater than or equal to the value given in the clause."
40
+ 52:
41
+ - cite: "OpenMP 5.2 §10.4, p.235"
42
+ quote: "The number of iterations that are executed concurrently at any given time is implementation defined."
43
+ - cite: "OpenMP 5.2 §10.4.2, p.237"
44
+ quote: "The safelen clause specifies that no two concurrent iterations within a SIMD chunk can have a distance in the logical iteration space that is greater than or equal to the value given in the clause."
45
+ 60:
46
+ - cite: "OpenMP 6.0 §12.4, p.399"
47
+ quote: "The number of collapsed iterations that are executed concurrently at any given time is implementation defined."
48
+ - cite: "OpenMP 6.0 §12.4.2, p.401"
49
+ quote: "The safelen clause specifies that no two concurrent logical iterations within a SIMD chunk can have a distance in the collapsed iteration space that is greater than or equal to the length argument."
50
+ simdlen_hint:
51
+ status: provisional
52
+ 50:
53
+ - cite: "OpenMP 5.0 §2.9.3.1, p.112"
54
+ quote: "The simdlen clause specifies the preferred number of iterations to be executed concurrently unless an if clause is present and evaluates to false, in which case the preferred number of iterations to be executed concurrently is one."
55
+ 52:
56
+ - cite: "OpenMP 5.2 §10.4.3, p.237"
57
+ quote: "When the simdlen clause appears on a simd construct, length is treated as a hint that specifies the preferred number of iterations to be executed concurrently."
58
+ 60:
59
+ - cite: "OpenMP 6.0 §12.4.3, p.401"
60
+ quote: "When the simdlen clause appears on a simd construct, length is treated as a hint that specifies the preferred number of collapsed iterations to be executed concurrently."
61
+ nontemporal_locality:
62
+ status: provisional
63
+ 50:
64
+ - cite: "OpenMP 5.0 §2.9.3.1, p.113"
65
+ quote: "The nontemporal clause specifies that accesses to the storage locations to which the list items refer have low temporal locality across the iterations in which those storage locations are accessed."
66
+ 52:
67
+ - cite: "OpenMP 5.2 §10.4.1, p.236"
68
+ quote: "The nontemporal clause specifies that accesses to the storage locations to which the list items refer have low temporal locality across the iterations in which those storage locations are accessed."
69
+ 60:
70
+ - cite: "OpenMP 6.0 §12.4.1, p.400"
71
+ quote: "The nontemporal clause specifies that accesses to the storage locations to which the list items refer have low temporal locality across the logical iterations in which those storage locations are accessed."
72
+ aligned_assertion:
73
+ status: provisional
74
+ 50:
75
+ - cite: "OpenMP 5.0 §2.9.3.1, p.112"
76
+ quote: "The aligned clause declares that the location of each list item is aligned to the number of bytes expressed in the optional parameter of the aligned clause."
77
+ 52:
78
+ - cite: "OpenMP 5.2 §5.11, p.169"
79
+ quote: "The alignment modifier specifies the alignment that the program ensures related to the list items."
80
+ 60:
81
+ - cite: "OpenMP 6.0 §7.12, p.300"
82
+ quote: "The alignment modifier specifies the alignment that the program ensures related to the list items."
83
+ close_hint:
84
+ status: provisional
85
+ 50:
86
+ - cite: "OpenMP 5.0 §2.19.7.1, p.321"
87
+ quote: "The close map-type-modifier is a hint to the runtime to allocate memory close to the target device."
88
+ 52:
89
+ - cite: "OpenMP 5.2 §5.8.3, p.155"
90
+ quote: "The close map-type-modifier is a hint to the runtime to allocate memory close to the target device."
91
+ 60:
92
+ - cite: "OpenMP 6.0 §7.9.6, p.285"
93
+ quote: "The close-modifier is a hint that the corresponding storage should be close to the target device."
94
+
95
+ # --- implementation_defined ------------------------------------------------
96
+ proc_bind_bind_var:
97
+ status: provisional
98
+ 50:
99
+ - cite: "OpenMP 5.0 §2.5.5, p.73"
100
+ quote: "If bind-var is not set to false then the proc_bind clause overrides the value of the first element of the bind-var ICV; otherwise, the proc_bind clause has no effect."
101
+ - cite: "OpenMP 5.0 §2.5.2, p.66"
102
+ quote: "bind-var OMP_PROC_BIND Implementation defined"
103
+ 52:
104
+ - cite: "OpenMP 5.2 §2.5, p.46"
105
+ quote: "If bind-var is not set to false then the proc_bind clause overrides the value of the first element of the bind-var ICV; otherwise, the proc_bind clause has no effect."
106
+ - cite: "OpenMP 5.2 §2.2, p.40"
107
+ quote: "bind-var OMP_PROC_BIND Implementation defined"
108
+ 60:
109
+ - cite: "OpenMP 6.0 §3.5, p.126"
110
+ quote: "If bind-var is not set to false then the proc_bind clause overrides the value of the first element of the bind-var ICV; otherwise, the proc_bind clause has no effect."
111
+ - cite: "OpenMP 6.0 §3.2, p.118"
112
+ quote: "bind-var OMP_PROC_BIND implementation defined"
113
+ order_concurrent:
114
+ status: provisional
115
+ 50:
116
+ - cite: "OpenMP 5.0 §2.9.2, p.104"
117
+ quote: "If an order(concurrent) clause is present, then after assigning the iterations of the associated loops to their respective threads, as specified in Table 2.5, the iterations may be executed in any order, including concurrently."
118
+ 52:
119
+ - cite: "OpenMP 5.2 §10.3, p.233"
120
+ quote: "If ordering is concurrent, the logical iterations of the associated loops may execute in any order, including concurrently."
121
+ 60:
122
+ - cite: "OpenMP 6.0 §12.3, p.397"
123
+ quote: "If ordering is concurrent, different collapsed iterations may execute in any order, including in parallel, as if by the binding thread set of the region."
124
+ target_nowait:
125
+ status: provisional
126
+ 50:
127
+ - cite: "OpenMP 5.0 §2.12.5, p.172"
128
+ quote: "If the nowait clause is present, execution of the target task may be deferred. If the nowait clause is not present, the target task is an included task."
129
+ 52:
130
+ - cite: "OpenMP 5.2 §13.8, p.284"
131
+ quote: "If the nowait clause is present, execution of the target task may be deferred. If the nowait clause is not present, the target task is an included task."
132
+ 60:
133
+ - cite: "OpenMP 6.0 §15.8, p.461"
134
+ quote: "If the nowait clause is present, execution of the target tasks may be deferred."
135
+ num_teams_bounds:
136
+ status: provisional
137
+ 52:
138
+ - cite: "OpenMP 5.2 §10.2.1, p.233"
139
+ quote: "The number of teams created is implementation defined, but it will be greater than or equal to the lower bound and less than or equal to the upper bound."
140
+ 60:
141
+ - cite: "OpenMP 6.0 §12.2.1, p.397"
142
+ quote: "The number of teams formed is implementation defined, but it will be greater than or equal to the lower bound and less than or equal to the upper bound."
143
+ schedule_auto:
144
+ status: provisional
145
+ 50:
146
+ - cite: "OpenMP 5.0 §2.9.2, p.105"
147
+ quote: "When kind is auto, the decision regarding scheduling is delegated to the compiler and/or runtime system."
148
+ 52:
149
+ - cite: "OpenMP 5.2 §11.5.3, p.253"
150
+ quote: "If the kind argument is auto, the decision regarding scheduling is implementation defined."
151
+ 60:
152
+ - cite: "OpenMP 6.0 §13.6.3, p.419"
153
+ quote: "If the kind argument is auto, the decision regarding scheduling is implementation defined."
154
+ schedule_simd_width:
155
+ status: provisional
156
+ 50:
157
+ - cite: "OpenMP 5.0 §2.9.2, p.106"
158
+ quote: "where simd_width is an implementation-defined value."
159
+ 52:
160
+ - cite: "OpenMP 5.2 §11.5.3, p.253"
161
+ quote: "is the chunk_size for all chunks except the first and last chunks, where simd_width is an implementation-defined value."
162
+ 60:
163
+ - cite: "OpenMP 6.0 §13.6.3, p.419"
164
+ quote: "is the chunk_size for all chunks except the first and last chunks, where simd_width is an implementation defined value."
165
+ schedule_nonmonotonic_order: # monotonic: dynamic against its default
166
+ status: provisional
167
+ 50:
168
+ - cite: "OpenMP 5.0 §2.9.2, p.106"
169
+ quote: "When the nonmonotonic modifier is specified then chunks are assigned to threads in any order and the behavior of an application that depends on any execution order of the chunks is unspecified."
170
+ - cite: "OpenMP 5.0 §2.9.2, p.106"
171
+ quote: "When the monotonic modifier is specified then each thread executes the chunks that it is assigned in increasing logical iteration order."
172
+ 52:
173
+ - cite: "OpenMP 5.2 §11.5.3, p.254"
174
+ quote: "When the nonmonotonic ordering-modifier is specified then chunks may be assigned to threads in any order and the behavior of an application that depends on any execution order of the chunks is unspecified."
175
+ - cite: "OpenMP 5.2 §11.5.3, p.254"
176
+ quote: "If the monotonic ordering-modifier is specified then each thread executes the chunks that it is assigned in increasing logical iteration order."
177
+ 60:
178
+ - cite: "OpenMP 6.0 §13.6.3, p.419"
179
+ quote: "When the nonmonotonic ordering-modifier is specified then chunks may be assigned to threads in any order and the behavior of an application that depends on any execution order of the chunks is unspecified."
180
+ - cite: "OpenMP 6.0 §13.6.3, p.419"
181
+ quote: "If the monotonic ordering-modifier is specified then each thread executes the chunks that it is assigned in increasing collapsed iteration order."
182
+
183
+ dist_schedule_default: # Dist_schedule(static) without a chunk size
184
+ status: provisional
185
+ 50:
186
+ - cite: "OpenMP 5.0 §2.9.4.1, p.122"
187
+ quote: "When no dist_schedule clause is specified, the schedule is implementation defined."
188
+ - cite: "OpenMP 5.0 §2.9.4.1, p.122"
189
+ quote: "When no chunk_size is specified, the iteration space is divided into chunks that are approximately equal in size, and at most one chunk is distributed to each initial team of the league."
190
+ 52:
191
+ - cite: "OpenMP 5.2 §11.6, p.254"
192
+ quote: "If the dist_schedule clause is not specified, the schedule is implementation defined."
193
+ - cite: "OpenMP 5.2 §11.6.1, p.256"
194
+ quote: "if chunk_size is not specified, the iteration space is divided into chunks that are approximately equal in size, and at most one chunk is distributed to each initial team of the league."
195
+ 60:
196
+ - cite: "OpenMP 6.0 §13.7, p.420"
197
+ quote: "If the dist_schedule clause is not specified, the loop schedule is implementation defined."
198
+ - cite: "OpenMP 6.0 §13.7.1, p.422"
199
+ quote: "approximately equal in size, and at most one chunk is distributed to each initial team of the league."
200
+ schedule_default: # Schedule(static) without a chunk size
201
+ status: provisional
202
+ 50:
203
+ - cite: "OpenMP 5.0 §2.5.1, p.64"
204
+ quote: "def-sched-var - controls the implementation defined default scheduling of worksharing-loop regions."
205
+ - cite: "OpenMP 5.0 §2.9.2, p.105"
206
+ quote: "One compliant implementation of the static schedule (with no specified chunk_size) would behave as though chunk_size had been specified with value q. Another compliant implementation would assign q iterations to the first p − r threads, and q − 1 iterations to the remaining r threads."
207
+ 52:
208
+ - cite: "OpenMP 5.2 §11.5, p.248"
209
+ quote: "If the schedule clause is not specified then the schedule is implementation defined."
210
+ - cite: "OpenMP 5.2 §11.5.3, p.253"
211
+ quote: "One compliant implementation of the static schedule (with no specified chunk_size) would behave as though chunk_size had been specified with value q. Another compliant implementation would assign q iterations to the first p − r threads, and q − 1 iterations to the remaining r threads."
212
+ 60:
213
+ - cite: "OpenMP 6.0 §13.6.3, p.419"
214
+ quote: "If the schedule clause is not specified on a worksharing-loop construct then the effect is as if the schedule clause was specified with auto as its kind argument."
215
+ - cite: "OpenMP 6.0 §13.6.3, p.419"
216
+ quote: "If the kind argument is auto, the decision regarding scheduling is implementation defined."
217
+
218
+ # --- equivalent_default ----------------------------------------------------
219
+ schedule_default_modifier:
220
+ status: provisional
221
+ 50:
222
+ - cite: "OpenMP 5.0 §2.9.2, p.103"
223
+ quote: "Otherwise, unless the monotonic modifier is specified, the effect is as if the nonmonotonic modifier is specified."
224
+ - cite: "OpenMP 5.0 §2.9.2, p.103"
225
+ quote: "If the static schedule kind is specified or if the ordered clause is specified, and if the nonmonotonic modifier is not specified, the effect is as if the monotonic modifier is specified."
226
+ 52:
227
+ - cite: "OpenMP 5.2 §11.5.3, p.254"
228
+ quote: "If an ordering-modifier is not specified, the effect is as if the monotonic modifier is specified if the kind argument is static or an ordered clause is specified on the construct; otherwise, the effect is as if the nonmonotonic modifier is specified."
229
+ 60:
230
+ - cite: "OpenMP 6.0 §13.6.3, p.419"
231
+ quote: "If an ordering-modifier is not specified, the effect is as if the monotonic ordering-modifier is specified if the kind argument is static or an ordered clause is specified on the construct; otherwise, the effect is as if the nonmonotonic ordering-modifier is specified."
232
+ reduction_default_modifier:
233
+ status: provisional
234
+ 50:
235
+ - cite: "OpenMP 5.0 §2.19.5.4, p.300"
236
+ quote: "If reduction-modifier is not present or the default reduction-modifier is present, the behavior is as follows."
237
+ 52:
238
+ - cite: "OpenMP 5.2 §5.5.8, p.134"
239
+ quote: "If reduction-modifier is not present or the default reduction-modifier is present, the behavior is as follows."
240
+ 60:
241
+ - cite: "OpenMP 6.0 §7.6.10, p.253"
242
+ quote: "If reduction-modifier is not present or the default reduction-modifier is present, the behavior is as follows."
243
+ linear_modifier_val:
244
+ status: provisional
245
+ 52:
246
+ - cite: "OpenMP 5.2 §5.4.6, p.118"
247
+ quote: "A linear-modifier may be specified as ref or uval only on a declare simd directive."
248
+ 60:
249
+ - cite: "OpenMP 6.0 §7.5.6, p.233"
250
+ quote: "A linear-modifier may be specified as ref or uval only for linear clauses on declare_simd directives."
251
+ defaultmap_default:
252
+ status: provisional
253
+ 50:
254
+ - cite: "OpenMP 5.0 §2.19.7.2, p.325"
255
+ quote: "If implicit-behavior is default, then the clause has no effect for the variables in the category specified by variable-category."
256
+ 52:
257
+ - cite: "OpenMP 5.2 §5.8.7, p.162"
258
+ quote: "If implicit-behavior is default then the clause has no effect."
259
+ 60:
260
+ - cite: "OpenMP 6.0 §7.9.9, p.292"
261
+ quote: "If implicit-behavior is default then the clause has no effect."
262
+ device_num_default:
263
+ status: provisional
264
+ 50:
265
+ - cite: "OpenMP 5.0 §2.12.5, p.172"
266
+ quote: "If device-modifier does not appear in the clause, the behavior of the clause is as if device-modifier is device_num."
267
+ 52:
268
+ - cite: "OpenMP 5.2 §13.2, p.276"
269
+ quote: "If device-modifier does not appear in the clause, the behavior of the clause is as if device-modifier is device_num."
270
+ 60:
271
+ - cite: "OpenMP 6.0 §15.2, p.451"
272
+ quote: "If device-modifier does not appear in the clause, the behavior of the clause is as if device-modifier is device_num."
273
+ memspace_default:
274
+ status: provisional
275
+ 52:
276
+ - cite: "OpenMP 5.2 §6.8, p.182"
277
+ quote: "If mem-space is not specified, the effect is as if memspace-handle is specified as omp_default_mem_space."
278
+ 60:
279
+ - cite: "OpenMP 6.0 §8.8, p.316"
280
+ quote: "If mem-space is not specified or omp_null_mem_space is specified, the effect is as if memspace-handle is specified as omp_default_mem_space."
281
+ ordered_n_default:
282
+ status: provisional
283
+ 50:
284
+ - cite: "OpenMP 5.0 §2.9.2, p.104"
285
+ quote: "The parameter of the ordered clause does not affect how the logical iteration space is then divided."
286
+ - cite: "OpenMP 5.0 §2.9.2, p.104"
287
+ quote: "If an ordered clause with the parameter is specified for the worksharing-loop construct, then those associated loops form a doacross loop nest."
288
+ 52:
289
+ - cite: "OpenMP 5.2 §4.4.4, p.94"
290
+ quote: "If n is not specified then the behavior is as if n is specified with the same value as is specified for the collapse clause on the construct."
291
+ 60:
292
+ - cite: "OpenMP 6.0 §6.4.6, p.206"
293
+ quote: "If n is not specified then the behavior is as if n is specified with the same value as is specified for the collapse clause on the construct."
294
+ order_unconstrained_reproducible:
295
+ status: provisional
296
+ 52:
297
+ - cite: "OpenMP 5.2 §11.5, p.248"
298
+ quote: "The schedule clause is specified with static as the kind argument but not the simd ordering-modifier and the order clause is not specified with the unconstrained order-modifier."
299
+ - cite: "OpenMP 5.2 §10.3, p.234"
300
+ quote: "If order-modifier is reproducible, the loop schedule for the construct on which the clause appears is reproducible, whereas if order-modifier is unconstrained, the loop schedule is not reproducible."
301
+ 60:
302
+ - cite: "OpenMP 6.0 §13.6, p.414"
303
+ quote: "The schedule clause is specified with static as the kind argument but not with the simd ordering-modifier and the order clause is not specified with the unconstrained order-modifier."
304
+ - cite: "OpenMP 6.0 §12.3, p.398"
305
+ quote: "If order-modifier is reproducible, the loop schedule for the construct on which the clause appears is reproducible, whereas if order-modifier is unconstrained, the loop schedule is not reproducible."
306
+ default_category_all:
307
+ status: provisional
308
+ 60:
309
+ - cite: "OpenMP 6.0 §7.5.1, p.223"
310
+ quote: "If no variable-category is specified in the clause then the effect is as if all was specified for the variable-category."
311
+ ref_ptr_ptee_default:
312
+ status: provisional
313
+ 60:
314
+ - cite: "OpenMP 6.0 §7.9.6, p.282"
315
+ quote: "Unless otherwise specified, if a list item is a referencing variable then the effect of the map clause is applied to its referring pointer and, if a referenced pointee exists, its referenced pointee."
316
+ nowait_true_default:
317
+ status: provisional
318
+ 60:
319
+ - cite: "OpenMP 6.0 §17.6, p.481"
320
+ quote: "If do_not_synchronize is not specified, the effect is as if do_not_synchronize evaluates to true."
321
+ replayable_true_default:
322
+ status: provisional
323
+ 60:
324
+ - cite: "OpenMP 6.0 §14.6, p.441"
325
+ quote: "If replayable-expression is not specified, the effect is as if replayable-expression evaluates to true."
326
+ # directive-name modifiers (6.0 only)
327
+ dnm_own_directive:
328
+ status: provisional
329
+ 60:
330
+ - cite: "OpenMP 6.0 §5.4, p.174"
331
+ quote: "If no directive-name-modifier is specified then the effect is as if a directive-name-modifier was specified with the directive name of the directive on which the clause appears."
332
+ dnm_single_leaf:
333
+ status: provisional
334
+ 60:
335
+ - cite: "OpenMP 6.0 §19.2, p.528"
336
+ quote: "Some clauses are permitted only on a single leaf construct of the compound construct, in which case the effect is as if the clause is applied to that specific construct."
337
+ dnm_innermost_leaf:
338
+ status: provisional
339
+ 60:
340
+ - cite: "OpenMP 6.0 §19.2, p.528"
341
+ quote: "Unless otherwise specified, the effect of any clause with the innermost-leaf property on a compound construct is as if it is applied only to the innermost leaf construct that permits it."
342
+ dnm_all_privatizing:
343
+ status: provisional
344
+ 60:
345
+ - cite: "OpenMP 6.0 §19.2, p.528"
346
+ quote: "The effect of any clause with the all-privatizing property on a compound directive is as if it is applied to all leaf constructs that permit the clause and to which a data-sharing attribute clause that may create a private copy of the same list item is applied."
347
+ dnm_firstprivate:
348
+ status: provisional
349
+ 60:
350
+ - cite: "OpenMP 6.0 §19.2, p.528"
351
+ quote: "To a worksharing construct that accepts the clause if one is among the constituent constructs;"
352
+ dnm_reduction:
353
+ status: provisional
354
+ 60:
355
+ - cite: "OpenMP 6.0 §19.2, p.529"
356
+ quote: "For the parallel and teams constructs above, the effect of the reduction clause instead is as if each list item or, for any list item that is an array item, its corresponding base array or corresponding base pointer appears in a shared clause for the construct."
357
+ dnm_thread_limit:
358
+ status: provisional
359
+ 60:
360
+ - cite: "OpenMP 6.0 §12.2, p.394"
361
+ quote: "If a thread_limit clause is not present on the teams construct, but the construct is closely nested inside a target construct on which the thread_limit clause is specified, the behavior is as if that thread_limit clause is also specified for the teams construct."
362
+
363
+ # --- C programs whose port showed the oracle does not separate ---
364
+ default_parallel_shared: # default(shared: <category>) on parallel
365
+ status: provisional
366
+ 60:
367
+ - cite: "OpenMP 6.0 §7.1.1, p.213"
368
+ quote: "In a parallel construct, if no default clause is present, these variables are shared."
369
+ reduction_original_default: # original(shared) of a shared item
370
+ status: provisional
371
+ 60:
372
+ - cite: "OpenMP 6.0 §7.6.10, p.252"
373
+ quote: "If the sharing argument is specified as default, original list items are assumed to be shared in the enclosing context unless determined not to be shared according to the rules specified in Section 7.1."