[Bug fortran/87946] New: [7/8/9 Regression] ICE in gfc_walk_array_ref, at fortran/trans-array.c:10506

gscfq@t-online.de gcc-bugzilla@gcc.gnu.org
Thu Nov 8 18:56:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87946

            Bug ID: 87946
           Summary: [7/8/9 Regression] ICE in gfc_walk_array_ref, at
                    fortran/trans-array.c:10506
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gscfq@t-online.de
  Target Milestone: ---

Affects versions 7 to 9.
Compiles with "type(t), allocatable :: u(:)" instead of class...


$ cat z1.f90
module m
   type t
   contains
      generic :: h => g
      procedure, private :: g
   end type
contains
   function g(x, y) result(z)
      class(t), intent(in) :: x
      real, intent(in) :: y(:, :)
      real :: z(size(y, 2))
   end
end
module m2
   use m
   type t2
      class(t), allocatable :: u(:)
   end type
end
function f(x, y) result(z)
   use m2
   type(t2) :: x
   real :: y(:, :)
   real :: z(size(y, 2))
   z = x%u(1)%h(y)
end


$ gfortran-6 -c z1.f90
$
$ gfortran-9-20181104 -c z1.f90
z1.f90:25:0:

   25 |    z = x%u(1)%h(y)
      |
internal compiler error: Segmentation fault
0xb205df crash_signal
        ../../gcc/toplev.c:325
0x6ce11f gfc_walk_array_ref(gfc_ss*, gfc_expr*, gfc_ref*)
        ../../gcc/fortran/trans-array.c:10506
0x6cfda9 gfc_walk_expr(gfc_expr*)
        ../../gcc/fortran/trans-array.c:10886
0x6cfda9 gfc_conv_expr_descriptor(gfc_se*, gfc_expr*)
        ../../gcc/fortran/trans-array.c:7087
0x6ffb41 gfc_conv_intrinsic_size
        ../../gcc/fortran/trans-intrinsic.c:7144
0x71549b gfc_conv_intrinsic_function(gfc_se*, gfc_expr*)
        ../../gcc/fortran/trans-intrinsic.c:9754
0x6f9a54 gfc_conv_function_expr
        ../../gcc/fortran/trans-expr.c:6905
0x6ee0aa gfc_conv_expr(gfc_se*, gfc_expr*)
        ../../gcc/fortran/trans-expr.c:8039
0x6f010a gfc_apply_interface_mapping(gfc_interface_mapping*, gfc_se*,
gfc_expr*)
        ../../gcc/fortran/trans-expr.c:4451
0x6c5d07 gfc_set_loop_bounds_from_array_spec(gfc_interface_mapping*, gfc_se*,
gfc_array_spec*)
        ../../gcc/fortran/trans-array.c:932
0x6f84a5 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:6147
0x6f9a3c gfc_conv_function_expr
        ../../gcc/fortran/trans-expr.c:6928
0x6ee0aa gfc_conv_expr(gfc_se*, gfc_expr*)
        ../../gcc/fortran/trans-expr.c:8039
0x6cf080 gfc_add_loop_ss_code
        ../../gcc/fortran/trans-array.c:2815
0x6cfc25 gfc_conv_loop_setup(gfc_loopinfo*, locus*)
        ../../gcc/fortran/trans-array.c:5129
0x6fc69b gfc_trans_assignment_1
        ../../gcc/fortran/trans-expr.c:10208
0x6bf54f trans_code
        ../../gcc/fortran/trans.c:1822
0x6e6e14 gfc_generate_function_code(gfc_namespace*)
        ../../gcc/fortran/trans-decl.c:6509
0x6740a6 translate_all_program_units
        ../../gcc/fortran/parse.c:6125
0x6740a6 gfc_parse_file()
        ../../gcc/fortran/parse.c:6328


More information about the Gcc-bugs mailing list