https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92369
Bug ID: 92369 Summary: ICE in wide_int_to_tree_1, at tree.c:1569 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- 1. gfortran-10.0.0-alpha20191103 snapshot (r277758), 8.2, 7.3, 6.3, 5.5, 4.9.4 all ICE when compiling the following testcase: program ch integer, target :: gs logical lt(1) class(*), pointer :: tu type wg class(*), allocatable :: e0 class(*), pointer :: zj end type wg type(wg) :: jv gs = 0 tu => gs jv%zj => gs lt(1) = same_type_as(tu, jv%zj) end program ch % powerpc-e300c3-linux-gnu-gfortran-10.0.0-alpha20191103 -c hd8x3lg9.f90 hd8x3lg9.f90:18:0: 18 | lt(1) = same_type_as(tu, jv%zj) | internal compiler error: in wide_int_to_tree_1, at tree.c:1569 0x70431a wide_int_to_tree_1 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/tree.c:1569 0x113cfe9 build_int_cst(tree_node*, poly_int<1u, long>) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/tree.c:1363 0x91ee54 gfc_conv_same_type_as /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/trans-intrinsic.c:8745 0x933e0b gfc_conv_intrinsic_function(gfc_se*, gfc_expr*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/trans-intrinsic.c:9848 0x912e31 gfc_trans_assignment_1 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/trans-expr.c:10834 0x8cab85 trans_code /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/trans.c:1852 0x8f97b1 gfc_generate_function_code(gfc_namespace*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/trans-decl.c:6791 0x8774fc translate_all_program_units /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/parse.c:6276 0x8774fc gfc_parse_file() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/parse.c:6515 0x8c565e gfc_be_parse_file /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/f95-lang.c:210 2. Commenting out line 8 (class(*), allocatable :: e0) yields the following ICE instead: % powerpc-e300c3-linux-gnu-gfortran-10.0.0-alpha20191103 -c hd8x3lg9.f90 hd8x3lg9.f90:18:0: 18 | lt(1) = same_type_as(tu, jv%zj) | internal compiler error: Segmentation fault 0xe55366 crash_signal /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/toplev.c:326 0x8fccff contains_struct_check(tree_node*, tree_node_structure_enum, char const*, int, char const*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/tree.h:3380 0x8fccff gfc_class_vptr_get(tree_node*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/trans-expr.c:213 0x91ee2e gfc_conv_same_type_as /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/trans-intrinsic.c:8744 0x933e0b gfc_conv_intrinsic_function(gfc_se*, gfc_expr*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/trans-intrinsic.c:9848 0x912e31 gfc_trans_assignment_1 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/trans-expr.c:10834 0x8cab85 trans_code /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/trans.c:1852 0x8f97b1 gfc_generate_function_code(gfc_namespace*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/trans-decl.c:6791 0x8774fc translate_all_program_units /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/parse.c:6276 0x8774fc gfc_parse_file() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/parse.c:6515 0x8c565e gfc_be_parse_file /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20191103/work/gcc-10-20191103/gcc/fortran/f95-lang.c:210 (While the target here is powerpc, the ICE is not target-specific.)