https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83522
--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I admit I'm not a Fortran language lawyer, but I actually don't see why (:)(:) is invalid. It is not a substring non-terminal in that case, sure, because R908/R909 require parent-string to be array-element or some scalar. But, R918 then has: array-section is data-ref [ ( substring-range ) ] or complex-part-designator and if C925/C296 conditions are met, it is a valid array section, for which then 9.5.3.1/1 says what it means (everything from https://j3-fortran.org/doc/year/18/18-007.pdf ). So, IMNSHO the patch needs to be reverted.