https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77583
--- Comment #1 from Gerhard Steinmetz <gerhard.steinmetz.fort...@t-online.de> --- With official releases (configured with --enable-checking=release) : $ gfortran-6 z1.f90 z1.f90:3:20: pure subroutine s 1 Error: internal procedure 's' at (1) conflicts with DUMMY argument ' (null):0: confused by earlier errors, bailing out $ gfortran-5 z1.f90 z1.f90:3:20: pure subroutine s 1 Error: internal procedure 's' at (1) conflicts with DUMMY argument z1.f90:3:20: Error: internal procedure '' at (1) conflicts with DUMMY argument # no ICE $ gfortran-4.9 z1.f90 z1.f90: In function 's': z1.f90:1:0: internal compiler error: in make_decl_rtl, at varasm.c:1221 pure subroutine sub(s) ^ Please submit a full bug report, with preprocessed source if appropriate. --- More variants : $ cat z2.f90 recursive subroutine sub(s) contains recursive subroutine s end end $ cat z3.f90 elemental subroutine sub(s) contains elemental subroutine s end end $ cat z4.f90 pure elemental subroutine sub(s) contains pure elemental subroutine s end end $ cat z5.f90 pure subroutine sub(s) contains elemental subroutine s end end $ cat z6.f90 elemental function f(s) real, intent(in) :: s contains pure subroutine s end end # ...