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

            Bug ID: 69514
           Summary: ICE with nested array constructor
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mrestelli at gmail dot com
  Target Milestone: ---

The attached code produces an internal compiler error. Notice that the
problem disappears removing the multiplication  3.0_wp*  .


program p
 implicit none

 integer, parameter :: wp = selected_real_kind(12,307)

 real(wp), parameter :: w(2) = &
  (/ real(wp) :: 0 , 3.0_wp*(/ real(wp) :: 2 /) /)
 !real(wp), parameter :: w(2) = & ! this is fine
 ! (/ real(wp) :: 0 , (/ real(wp) :: 2 /) /)

 write(*,*) w

end program p



$ gfortran test.f90 -o test
f951: internal compiler error: Speicherzugriffsfehler
0xa683cf crash_signal
        gcc/toplev.c:335
0x5c114c gfc_arith_times
        gcc/fortran/arith.c:696
0x5bf798 reduce_binary_ca
        gcc/fortran/arith.c:1329
0x5bf9a4 reduce_binary
        gcc/fortran/arith.c:1414
0x5c029b eval_intrinsic
        gcc/fortran/arith.c:1592
0x5c04ce eval_intrinsic_f3
        gcc/fortran/arith.c:1725
0x61d334 match_add_operand
        gcc/fortran/matchexp.c:392
0x61d51c match_level_2
        gcc/fortran/matchexp.c:480
0x61d672 match_level_3
        gcc/fortran/matchexp.c:551
0x61d784 match_level_4
        gcc/fortran/matchexp.c:599
0x61d784 match_and_operand
        gcc/fortran/matchexp.c:693
0x61d942 match_or_operand
        gcc/fortran/matchexp.c:722
0x61da32 match_equiv_operand
        gcc/fortran/matchexp.c:765
0x61db22 match_level_5
        gcc/fortran/matchexp.c:811
0x61ce91 gfc_match_expr(gfc_expr**)
        gcc/fortran/matchexp.c:870
0x5c3a1a match_array_cons_element
        gcc/fortran/array.c:1051
0x5c4cc9 gfc_match_array_constructor(gfc_expr**)
        gcc/fortran/array.c:1146
0x61d029 match_primary
        gcc/fortran/matchexp.c:153
0x61d029 match_level_1
        gcc/fortran/matchexp.c:211
0x61d029 match_mult_operand
        gcc/fortran/matchexp.c:267


$ gfortran --version
GNU Fortran (GCC) 6.0.0 20160127 (experimental)

Reply via email to