[Bug fortran/87980] ICE in gfc_conv_descriptor_data_get, at fortran/trans-array.c for assignment on allocatable polymorphic variable
gscfq@t-online.de
gcc-bugzilla@gcc.gnu.org
Tue Sep 17 19:03:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87980
G. Steinmetz <gscfq@t-online.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |gscfq@t-online.de
--- Comment #5 from G. Steinmetz <gscfq@t-online.de> ---
Some possible simplifications (z1/z2) :
$ cat z1.f90
module m
type t
contains
procedure :: f => g
end type
contains
subroutine g (z, x)
class(t) :: z
class(t), optional :: x
end
subroutine s (z, x)
class(t) :: z
class(t), optional :: x(:)
if ( present(x) ) call z%f(x(1))
end
end
$ cat z2.f90
module m
type t
contains
procedure :: f => g
end type
contains
subroutine g (z, x)
class(t) :: z
class(t), optional :: x
end
subroutine s (z, x)
class(t) :: z
class(t), optional :: x(1)
if ( present(x) ) call z%f(x(1))
end
end
$ gfortran-10-20190915 -c z1.f90
z1.f90:14:0:
14 | if ( present(x) ) call z%f(x(1))
|
internal compiler error: in gfc_conv_descriptor_data_get, at
fortran/trans-array.c:145
0x6ca048 gfc_conv_descriptor_data_get(tree_node*)
../../gcc/fortran/trans-array.c:145
0x6f6669 gfc_conv_class_to_class(gfc_se*, gfc_expr*, gfc_typespec, bool, bool,
bool, bool)
../../gcc/fortran/trans-expr.c:1163
0x6ffe24 gfc_conv_procedure_call(gfc_se*, gfc_symbol*, gfc_actual_arglist*,
gfc_expr*, vec<tree_node*, va_gc, vl_embed>*)
../../gcc/fortran/trans-expr.c:5861
0x732988 gfc_trans_call(gfc_code*, bool, tree_node*, tree_node*, bool)
../../gcc/fortran/trans-stmt.c:406
0x6c5341 trans_code
../../gcc/fortran/trans.c:1920
0x72eee3 gfc_trans_if_1
../../gcc/fortran/trans-stmt.c:1448
0x7367fa gfc_trans_if(gfc_code*)
../../gcc/fortran/trans-stmt.c:1479
0x6c5097 trans_code
../../gcc/fortran/trans.c:1940
0x6edd14 gfc_generate_function_code(gfc_namespace*)
../../gcc/fortran/trans-decl.c:6781
0x6c8d89 gfc_generate_module_code(gfc_namespace*)
../../gcc/fortran/trans.c:2250
0x6776c1 translate_all_program_units
../../gcc/fortran/parse.c:6241
0x6776c1 gfc_parse_file()
../../gcc/fortran/parse.c:6493
0x6c1a0f gfc_be_parse_file
../../gcc/fortran/f95-lang.c:204
More information about the Gcc-bugs
mailing list