https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67933
Bug ID: 67933
Summary: [4.9/5/Trunk Regression] ICE for array of a derived
type with allocatable class in derived type object
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: mandrew9 at vt dot edu
Target Milestone: ---
Created attachment 36482
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36482&action=edit
small test case (source code)
Description:
Create a derived type object (list_t) that contains an array of a derived type
(wrapper_t). This derived type (wrapper_t) contains an allocatable class
(class_t). Whenever the object is referenced (as in Method), an ICE is thrown.
Replacing the allocatable class in the derived type (wrapper_t) with an
allocatable derived type or primitive type allows the module to compile.
test_mod.f95 (Also attached):
========================================
module test_mod
implicit none
type :: class_t
end type class_t
type :: wrapper_t
class(class_t), allocatable :: class_var
! type(class_t), allocatable :: class_var
! integer, allocatable :: class_id
end type wrapper_t
type :: list_t
type(wrapper_t) :: classes(10)
contains
procedure :: Method
end type list_t
contains
subroutine Method(this)
class(list_t) :: this
contains
! Do stuff
end subroutine Method
end module test_mod
========================================
Compiler: gcc version 4.9.3/5/Trunk
System: x86_64-redhat-linux
========================================
Command line: gfortran test_mod.f95
Output (with gcc 6.0.0 20151009 (experimental)):
test_mod.f95:23:0:
end module test_mod
1
internal compiler error: in gfc_conv_expr_descriptor, at
fortran/trans-array.c:6684
0x6aabeb gfc_conv_expr_descriptor(gfc_se*, gfc_expr*)
../../../packages/gcc_svn/gcc/fortran/trans-array.c:6684
0x6cf613 gfc_trans_pointer_assignment(gfc_expr*, gfc_expr*)
../../../packages/gcc_svn/gcc/fortran/trans-expr.c:7854
0x6cfd1e gfc_reset_vptr(stmtblock_t*, gfc_expr*)
../../../packages/gcc_svn/gcc/fortran/trans-expr.c:360
0x6fc495 gfc_trans_deallocate(gfc_code*)
../../../packages/gcc_svn/gcc/fortran/trans-stmt.c:6070
0x698937 trans_code
../../../packages/gcc_svn/gcc/fortran/trans.c:1802
0x6f1f63 gfc_trans_if_1
../../../packages/gcc_svn/gcc/fortran/trans-stmt.c:1106
0x6f821a gfc_trans_if(gfc_code*)
../../../packages/gcc_svn/gcc/fortran/trans-stmt.c:1137
0x698a27 trans_code
../../../packages/gcc_svn/gcc/fortran/trans.c:1740
0x6f9611 gfc_trans_simple_do
../../../packages/gcc_svn/gcc/fortran/trans-stmt.c:1671
0x6f9611 gfc_trans_do(gfc_code*, tree_node*)
../../../packages/gcc_svn/gcc/fortran/trans-stmt.c:1834
0x6989fa trans_code
../../../packages/gcc_svn/gcc/fortran/trans.c:1752
0x6bb963 gfc_generate_function_code(gfc_namespace*)
../../../packages/gcc_svn/gcc/fortran/trans-decl.c:5900
0x69bcc1 gfc_generate_module_code(gfc_namespace*)
../../../packages/gcc_svn/gcc/fortran/trans.c:2014
0x65554d translate_all_program_units
../../../packages/gcc_svn/gcc/fortran/parse.c:5533
0x65554d gfc_parse_file()
../../../packages/gcc_svn/gcc/fortran/parse.c:5752
0x695cf2 gfc_be_parse_file
../../../packages/gcc_svn/gcc/fortran/f95-lang.c:209
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.
========================================
Configured with: ../../packages/gcc_svn/configure
--prefix=/l/mandrew9/Software/installs/gcc/gcc-trunk --with-cpu=generic
--build=x86_64-redhat-linux --enable-threads=posix --enable-checking=release
--enable-languages=fortran,c,c++ --disable-multilib