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.)

Reply via email to