[Bug fortran/90788] New: ICE on allocating derived type containing class(*) pointer initialized to null()
abensonca at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Jun 8 21:24:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90788
Bug ID: 90788
Summary: ICE on allocating derived type containing class(*)
pointer initialized to null()
Product: gcc
Version: unknown
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 gives an ICE with trunk:
module vdc
type:: vdcp
class(*), pointer :: po => null()
end type vdcp
end module vdc
module oa
contains
subroutine i1()
use :: vdc, only : vdcp
type(vdcp), pointer :: a, b
allocate(a)
end subroutine i1
subroutine i2()
use :: vdc, only : vdcp
type(vdcp), pointer :: a
allocate(a)
end subroutine i2
end module oa
$ gfortran -c tmp.F90 -o tmp.o
tmp.F90:12:0:
12 | allocate(a)
|
internal compiler error: Segmentation fault
0xde688f crash_signal
../../gcc-trunk/gcc/toplev.c:326
0x7fedc334d1ef ???
/data001/abenson/Galacticus/Tools/glibc-2.12.1/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0x904f94 contains_struct_check(tree_node*, tree_node_structure_enum, char
const*, int, char const*)
../../gcc-trunk/gcc/tree.h:3307
0x904f94 gfc_trans_structure_assign(tree_node*, gfc_expr*, bool, bool)
../../gcc-trunk/gcc/fortran/trans-expr.c:8360
0x904702 gfc_trans_subcomponent_assign
../../gcc-trunk/gcc/fortran/trans-expr.c:8205
0x904fe0 gfc_trans_structure_assign(tree_node*, gfc_expr*, bool, bool)
../../gcc-trunk/gcc/fortran/trans-expr.c:8370
0x905e76 gfc_conv_structure(gfc_se*, gfc_expr*, int)
../../gcc-trunk/gcc/fortran/trans-expr.c:8437
0x907b25 gfc_trans_assignment_1
../../gcc-trunk/gcc/fortran/trans-expr.c:10779
0x9453f8 gfc_trans_allocate(gfc_code*)
../../gcc-trunk/gcc/fortran/trans-stmt.c:6663
0x8c34d7 trans_code
../../gcc-trunk/gcc/fortran/trans.c:1995
0x8efebb gfc_generate_function_code(gfc_namespace*)
../../gcc-trunk/gcc/fortran/trans-decl.c:6705
0x8c76c1 gfc_generate_module_code(gfc_namespace*)
../../gcc-trunk/gcc/fortran/trans.c:2221
0x8773ad translate_all_program_units
../../gcc-trunk/gcc/fortran/parse.c:6121
0x8773ad gfc_parse_file()
../../gcc-trunk/gcc/fortran/parse.c:6367
0x8c05ef gfc_be_parse_file
../../gcc-trunk/gcc/fortran/f95-lang.c:204
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
$ gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-trunk/configure --prefix=/home/abenson/Galacticus/Tools
--enable-languages=c,c++,fortran --disable-multilib
Thread model: posix
gcc version 10.0.0 20190608 (experimental) (GCC)
The ICE only occurs if there are two subroutines each with an "allocate(a)"
statement - one such subroutine on its own does not trigger the ICE.
The ICE also goes away if the class(*) pointer is not initialized to null().
More information about the Gcc-bugs
mailing list