https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98913
--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> --- (In reply to Tobias Burnus from comment #0) > D.3991 = (*(real(kind=8)[0:] * restrict) bb.data)[(bb.offset + > (integer(kind=8)) j * bb.dim[1].stride) + (integer(kind=8)) k]; Missed that this one is a FP number not a pointer – hence, the issue I have does not exist. (Probably works – I have not verified whether that is always the case and I hope it does.) * * * The difference between coarray and not occurs elsewhere: dependency.c's gfc_dep_resolver has: case REF_ARRAY: /* For now, treat all coarrays as dangerous. */ if (lref->u.ar.codimen || rref->u.ar.codimen) return 1; Alternative would be to check for flag_coarray == GFC_FCOARRAY_SINGLE || ref->u.ar.dimen_type[ref->u.ar.dimen] == DIMEN_THIS_IMAGE) or something like that.