https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79426
--- Comment #6 from G. Steinmetz <gs...@t-online.de> --- In all za* examples above reduce the type by an integer variable. Now type "t" contains one integer and one class(*) : $ cat zb2.f90 program p type t integer :: a class(*), pointer :: u(:) end type type(t) :: z select type (y => z%u(1)) end select end $ gfortran-9-20181111 -c zb2.f90 zb2.f90:1:0: 1 | program p | internal compiler error: Segmentation fault 0xb297bf crash_signal ../../gcc/toplev.c:325 0x6ea85e gfc_class_len_get(tree_node*) ../../gcc/fortran/trans-expr.c:233 0x727331 trans_associate_var ../../gcc/fortran/trans-stmt.c:2020 0x72d9d1 gfc_trans_block_construct(gfc_code*) ../../gcc/fortran/trans-stmt.c:2073 0x6bff57 trans_code ../../gcc/fortran/trans.c:1918 0x6e7674 gfc_generate_function_code(gfc_namespace*) ../../gcc/fortran/trans-decl.c:6509 0x6744d6 translate_all_program_units ../../gcc/fortran/parse.c:6125 0x6744d6 gfc_parse_file() ../../gcc/fortran/parse.c:6328 0x6bc89f gfc_be_parse_file ../../gcc/fortran/f95-lang.c:204