https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94446
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |burnus at gcc dot gnu.org --- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> --- Created attachment 50541 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50541&action=edit Draft patch I wonder whether something like that would work. The only known failure is gfortran.dg/gomp/use_device_ptr-1.f90 which fails as instead of void * x; #pragma omp target data map(alloc:x) the wrong #pragma omp target data map(alloc:*x) map(alloc:x [pointer assign, bias: 0]) is generated (ICE as sizeof 'void' does not make sense). (Fix should be in the code block below 'case OMP_LIST_MAP:' in trans-openmp.c) I wonder what else goes wrong with 'type(c_ptr)' and 'type(c_ptr),pointer' besides this issue and the one 'fn spec' issue (already fixed in the attached patch).