Currently, one has for   !$omp target exit data map(delete:x) in the original dump:   #pragma omp target exit data map(delete:*x) map(alloc:x [pointer assign, bias: 0]) The "alloc:" not only does not make sense but also gives run-time messages like: libgomp: GOMP_target_enter_exit_data unhandled kind 0x04 [Depending on the data type, in gfc_trans_omp_clauses's OMP_LIST_MAP, add map clauses of type GOMP_MAP_POINTER and/or GOMP_MAP_TO_PSET.] That's for release:/delete:. However, for 'target exit data' (GOMP_target_enter_exit_data) the same issue occurs for "from:"/"always, from:".  But "from:" implies "alloc:". – While "alloc:" does not make sense for "target exit data" or "update", for "target" or "target data" it surely matters. Hence, I only exclude "from:" for exit data and update. See attached patch. I have additionally Fortran-fied libgomp.c/target-20.c to have at least one 'enter/exit target data' test case for Fortran. Build + regtested on x86_64-gnu-linux w/o offloading. And I have tested the new test case with nvptx. Tobias