2.4 OpenMP 5.2

New features listed in Appendix B of the OpenMP specification

DescriptionStatusComments
omp_in_explicit_task routine and explicit-task-var ICVY
omp/ompx/omx sentinels and omp_/ompx_ namespacesN/Awarning for ompx/omx sentinels1
Clauses on end directive can be on directiveY
destroy clause with destroy-var argument on depobjY
Deprecation of no-argument destroy clause on depobjN
linear clause syntax changes and step modifierY
Deprecation of minus operator for reductionsN
Deprecation of separating map modifiers without commaN
declare mapper with iterator and present modifiersN
If a matching mapped list item is not found in the data environment, the pointer retains its original valueY
New enter clause as alias for to on declare target directiveY
Deprecation of to clause on declare target directiveN
Extended list of directives permitted in Fortran pure proceduresY
New allocators directive for FortranY
Deprecation of allocate directive for Fortran allocatables/pointersN
Optional paired end directive with dispatchN
New memspace and traits modifiers for uses_allocatorsN
Deprecation of traits array following the allocator_handle expression in uses_allocatorsN
New otherwise clause as alias for default on metadirectivesN
Deprecation of default clause on metadirectivesN
Deprecation of delimited form of declare targetN
Reproducible semantics changed for order(concurrent)N
allocate and firstprivate clauses on scopeY
ompt_callback_workN
Default map-type for the map clause in target enter/exit dataY
New doacross clause as alias for depend with source/sink modifierY
Deprecation of depend with source/sink modifierN
omp_cur_iteration keywordY

Other new OpenMP 5.2 features

DescriptionStatusComments
For Fortran, optional comma between directive and clauseN
Conforming device numbers and omp_initial_device and omp_invalid_device enum/PARAMETERY
Initial value of default-device-var ICV with OMP_TARGET_OFFLOAD=mandatoryY
all as implicit-behavior for defaultmapY
interop_types in any position of the modifier list for the init clause of the interop constructN
Invoke virtual member functions of C++ objects created on the host device on other devicesN

Footnotes

(1)

The ompx sentinel as C/C++ pragma and C++ attributes are warned for with -Wunknown-pragmas (implied by -Wall) and -Wattributes (enabled by default), respectively; for Fortran free-source code, there is a warning enabled by default and, for fixed-source code, the omx sentinel is warned for with -Wsurprising (enabled by -Wall). Unknown clauses are always rejected with an error.