[Bug fortran/66366] New: ICE on invalid with non-allocatable CLASS variable [OOP]
abensonca at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Jun 1 19:19:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66366
Bug ID: 66366
Summary: ICE on invalid with non-allocatable CLASS variable
[OOP]
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: abensonca at gmail dot com
Target Milestone: ---
The following invalid code causes an ICE with gfortran 6.0.0 223992:
module bug
type :: t1d
contains
procedure :: interpolate => interp
end type t1d
type :: tff
class(t1d) :: transfer
end type tff
contains
double precision function interp(self)
implicit none
class(t1d), intent(inout) :: self
return
end function interp
double precision function fvb(self)
implicit none
class(tff), intent(inout) :: self
fvb=self%transfer%interpolate()
return
end function fvb
end module bug
$ gfortran -v
Using built-in specs.
COLLECT_GCC=/opt/gcc-trunk/bin/gfortran
COLLECT_LTO_WRAPPER=/opt/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-trunk/configure --prefix=/opt/gcc-trunk
--enable-languages=c,c++,fortran --disable-multilib
Thread model: posix
gcc version 6.0.0 20150517 (experimental) (GCC)
gfortran -c bug.F90 -o bug.o
bug.F90:9:27:
class(t1d) :: transfer
1
Error: Component ‘transfer’ with CLASS at (1) must be allocatable or pointer
f951: internal compiler error: in check_typebound_baseobject, at
fortran/resolve.c:5521
0x637465 check_typebound_baseobject
../../gcc-trunk/gcc/fortran/resolve.c:5521
0x63791e resolve_compcall
../../gcc-trunk/gcc/fortran/resolve.c:5812
0x63404e resolve_typebound_function
../../gcc-trunk/gcc/fortran/resolve.c:5954
0x63404e gfc_resolve_expr(gfc_expr*)
../../gcc-trunk/gcc/fortran/resolve.c:6265
0x63a8b6 gfc_resolve_code(gfc_code*, gfc_namespace*)
../../gcc-trunk/gcc/fortran/resolve.c:10095
0x63d2d2 resolve_codes
../../gcc-trunk/gcc/fortran/resolve.c:15055
0x63d1d7 resolve_codes
../../gcc-trunk/gcc/fortran/resolve.c:15040
0x63d3b2 gfc_resolve(gfc_namespace*)
../../gcc-trunk/gcc/fortran/resolve.c:15083
0x628cb6 gfc_parse_file()
../../gcc-trunk/gcc/fortran/parse.c:5477
0x669445 gfc_be_parse_file
../../gcc-trunk/gcc/fortran/f95-lang.c:228
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 code is invalid as the CLASS variable in "tff" is neither allocatable nor a
pointer. The call to the "interpolate" function of the "t1d" class seems to be
necessary to trigger the ICE.
More information about the Gcc-bugs
mailing list