http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59765
Bug ID: 59765 Summary: ICE on valid with allocatable component and type extension Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: abensonca at gmail dot com The following causes an ICE with gfortran 4.9.0 r206484, but compiles successfully with r205975: module mtds type umd integer, dimension(:), allocatable :: c end type umd type mtd type(umd), dimension(1) :: u end type mtd contains subroutine add(s) class(mtd), intent(inout) :: s end subroutine add end module mtds $ gfortran -v Using built-in specs. COLLECT_GCC=gfortran COLLECT_LTO_WRAPPER=/nfs/04/osu7985/Galacticus/Tools/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../trunk/configure --prefix=/nfs/04/osu7985/Galacticus/Tools --enable-languages=c++,c,fortran --disable-multilib Thread model: posix gcc version 4.9.0 20140109 (experimental) (GCC) $ gfortran -c tmp1.F90 -o tmp1.o tmp1.F90: In function ‘__final_mtds_Mtd’: tmp1.F90:10:0: internal compiler error: in gfc_conv_descriptor_data_get, at fortran/trans-array.c:145 class(mtd), intent(inout) :: s ^ 0x65cd8d gfc_conv_descriptor_data_get(tree_node*) ../../trunk/gcc/fortran/trans-array.c:145 0x66454f gfc_array_deallocate(tree_node*, tree_node*, tree_node*, tree_node*, tree_node*, gfc_expr*) ../../trunk/gcc/fortran/trans-array.c:5335 0x6bedfd gfc_trans_deallocate(gfc_code*) ../../trunk/gcc/fortran/trans-stmt.c:5421 0x658c27 trans_code ../../trunk/gcc/fortran/trans.c:1782 0x6bc344 gfc_trans_simple_do ../../trunk/gcc/fortran/trans-stmt.c:1427 0x6bc344 gfc_trans_do(gfc_code*, tree_node*) ../../trunk/gcc/fortran/trans-stmt.c:1590 0x658cea trans_code ../../trunk/gcc/fortran/trans.c:1732 0x6827be gfc_generate_function_code(gfc_namespace*) ../../trunk/gcc/fortran/trans-decl.c:5605 0x65a6c1 gfc_generate_module_code(gfc_namespace*) ../../trunk/gcc/fortran/trans.c:1956 0x61689d translate_all_program_units ../../trunk/gcc/fortran/parse.c:4523 0x61689d gfc_parse_file() ../../trunk/gcc/fortran/parse.c:4733 0x654815 gfc_be_parse_file ../../trunk/gcc/fortran/f95-lang.c:188 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. The ICE goes away if I do any of the following: * Change "class(mtd)" to "type(mtd)" * Make the "u" component of "mtd" allocatable, or make it a scalar * Make the "c" component of "umd" non-allocatable