https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95068
Bug ID: 95068 Summary: [10/11 Regression] ICE in gfc_get_class_from_expr, at fortran/trans-expr.c:484 Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Changed between 20190922 and 20190929 : $ cat z1.f90 program p type t end type contains function f() result(x) class(t), allocatable :: x associate (y => (f)) end associate end end $ gfortran-9 -c z1.f90 # no error z1.f90:7:23: 7 | associate (y => (f)) | 1 Warning: Non-RECURSIVE procedure 'f' at (1) is possibly calling itself recursively. Declare it RECURSIVE or use '-frecursive' $ gfortran-11-20200510-chk -c z1.f90 z1.f90:7:23: 7 | associate (y => (f)) | 1 Warning: Non-RECURSIVE procedure 'f' at (1) is possibly calling itself recursively. Declare it RECURSIVE or use '-frecursive' z1.f90:7:0: 7 | associate (y => (f)) | internal compiler error: tree check: expected class 'expression', have 'declaration' (function_decl) in tree_operand_check, at tree.h:3792 0x61669c tree_class_check_failed(tree_node const*, tree_code_class, char const*, int, char const*) ../../gcc/tree.c:9736 0x776349 expr_check(tree_node*, char const*, int, char const*) ../../gcc/tree.h:3463 0x776349 tree_operand_check(tree_node*, int, char const*, int, char const*) ../../gcc/tree.h:3792 0x776349 gfc_get_class_from_expr(tree_node*) ../../gcc/fortran/trans-expr.c:484 0x7d2502 trans_associate_var ../../gcc/fortran/trans-stmt.c:2100 0x7d8d99 gfc_trans_block_construct(gfc_code*) ../../gcc/fortran/trans-stmt.c:2283 0x73a207 trans_code ../../gcc/fortran/trans.c:1960 0x77194d gfc_generate_function_code(gfc_namespace*) ../../gcc/fortran/trans-decl.c:6835 0x77165c gfc_generate_contained_functions ../../gcc/fortran/trans-decl.c:5830 0x77165c gfc_generate_function_code(gfc_namespace*) ../../gcc/fortran/trans-decl.c:6767 0x6ea066 translate_all_program_units ../../gcc/fortran/parse.c:6306 0x6ea066 gfc_parse_file() ../../gcc/fortran/parse.c:6545 0x7364ff gfc_be_parse_file ../../gcc/fortran/f95-lang.c:210