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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2015-02-09
                 CC|                            |janus at gcc dot gnu.org
   Target Milestone|---                         |5.0
            Summary|[5.0 regression] ICE in     |[5.0 Regression] ICE in
                   |trans-expr.c                |trans-expr.c
     Ever confirmed|0                           |1

--- Comment #1 from janus at gcc dot gnu.org ---
Here is a reduced test case, which is enough to trigger the ICE:


module muli_trapezium
  implicit none

  type :: muli_trapezium_t
     integer::dim=0
  end type

  type, extends (muli_trapezium_t) :: muli_trapezium_node_class_t
  end type

contains

  pure function get_d_value_array (this) result (subarray)
    class(muli_trapezium_t), intent(in) :: this
    real, dimension(this%dim) :: subarray
  end function

  subroutine set_d_integral (this, subarray)
    class(muli_trapezium_t), intent(inout) :: this
    real, intent(in), dimension(0:this%dim-1) :: subarray
  end subroutine

  subroutine muli_trapezium_list_integrate ()
    class(muli_trapezium_node_class_t), pointer :: node
    call set_d_integral ( node,  get_d_value_array(node) )   ! ICE
  end subroutine

end module


Backtrace:

0x6b8df3 gfc_conv_component_ref
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:1954
0x6b8f4a conv_parent_component_references
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:2020
0x6c3633 gfc_conv_variable
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:2209
0x6c0cba gfc_conv_expr(gfc_se*, gfc_expr*)
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:6882
0x6c22ba gfc_apply_interface_mapping(gfc_interface_mapping*, gfc_se*,
gfc_expr*)
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:3849
0x699bf8 gfc_set_loop_bounds_from_array_spec(gfc_interface_mapping*, gfc_se*,
gfc_array_spec*)
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-array.c:794
0x6bf118 gfc_conv_procedure_call(gfc_se*, gfc_symbol*, gfc_actual_arglist*,
gfc_expr*, vec<tree_node*, va_gc, vl_embed>*)
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:5347
0x6c0737 gfc_conv_function_expr
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:5938
0x6c0c9a gfc_conv_expr(gfc_se*, gfc_expr*)
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:6874
0x6a67b3 gfc_add_loop_ss_code
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-array.c:2560
0x6a7385 gfc_conv_loop_setup(gfc_loopinfo*, locus*)
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-array.c:4711
0x6a4f5b gfc_conv_expr_descriptor(gfc_se*, gfc_expr*)
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-array.c:6689
0x6a857e gfc_conv_array_parameter(gfc_se*, gfc_expr*, bool, gfc_symbol const*,
char const*, tree_node**)
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-array.c:7184
0x6bc89b gfc_conv_procedure_call(gfc_se*, gfc_symbol*, gfc_actual_arglist*,
gfc_expr*, vec<tree_node*, va_gc, vl_embed>*)
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:4843
0x6eec1e gfc_trans_call(gfc_code*, bool, tree_node*, tree_node*, bool)
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-stmt.c:419
0x69590c trans_code
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans.c:1728
0x6b6723 gfc_generate_function_code(gfc_namespace*)
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-decl.c:5842
0x6979d1 gfc_generate_module_code(gfc_namespace*)
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans.c:2021
0x651915 translate_all_program_units
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/parse.c:5328
0x651915 gfc_parse_file()
    /home/jweil/gcc/gcc50/trunk/gcc/fortran/parse.c:5538

Reply via email to