https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87734
Bug ID: 87734 Summary: ICE in is_illegal_recursion check for character len= parameter Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: aldot at gcc dot gnu.org Target Milestone: --- Created attachment 44891 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44891&action=edit reduced from flibs-svncode/trunk/src/strings/m_vstring.f90 -- sf.net/projects/flibs flibs-svncode/trunk/src/strings/m_vstring.f90 Builds fine with gfortran-4.8 ICEs with current trunk: $ gfortran -c -o a.o m_vstring.f90 f951: internal compiler error: in is_illegal_recursion, at fortran/resolve.c:1688 0x93f623 is_illegal_recursion ../../../src/gcc-9.0.mine/gcc/fortran/resolve.c:1688 0x942ff8 resolve_function ../../../src/gcc-9.0.mine/gcc/fortran/resolve.c:3294 0x94b2f7 gfc_resolve_expr(gfc_expr*) ../../../src/gcc-9.0.mine/gcc/fortran/resolve.c:6809 0x8b7256 gfc_reduce_init_expr(gfc_expr*) ../../../src/gcc-9.0.mine/gcc/fortran/expr.c:2799 0x896d3a gfc_match_char_spec(gfc_typespec*) ../../../src/gcc-9.0.mine/gcc/fortran/decl.c:3261 0x89860a gfc_match_decl_type_spec(gfc_typespec*, int) ../../../src/gcc-9.0.mine/gcc/fortran/decl.c:3904 0x89ba26 gfc_match_data_decl() ../../../src/gcc-9.0.mine/gcc/fortran/decl.c:5831 0x9265dd match_word ../../../src/gcc-9.0.mine/gcc/fortran/parse.c:65 0x927190 decode_statement ../../../src/gcc-9.0.mine/gcc/fortran/parse.c:376 0x92bca0 next_free ../../../src/gcc-9.0.mine/gcc/fortran/parse.c:1234 0x92c23f next_statement ../../../src/gcc-9.0.mine/gcc/fortran/parse.c:1466 0x92f6c4 parse_spec ../../../src/gcc-9.0.mine/gcc/fortran/parse.c:3860 0x93267d parse_progunit ../../../src/gcc-9.0.mine/gcc/fortran/parse.c:5671 0x93236d parse_contained ../../../src/gcc-9.0.mine/gcc/fortran/parse.c:5574 0x932d61 parse_module (gdb) up #1 0x000000000093f624 in is_illegal_recursion (sym=0x2ec81a0, context=0x2ecbc80) at ../../../src/gcc-9.0.mine/gcc/fortran/resolve.c:1688 1688 gcc_assert (sym->attr.flavor == FL_PROCEDURE); (gdb) p sym->name $1 = 0x7ffff70ce6a0 "vstring_length" (gdb) p sym->attr.flavor $2 = FL_UNKNOWN PS: to build the full flibs you currently have to svn checkout # fix the most severe bugs in the config script: sed -i -e 's/==/=/g' -e 's/@$\([0-9]\)/"@$\1"/g' configure.sh OSTYPE=linux-gnu ./configure.sh cd make/makefile make