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

Reply via email to