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

G. Steinmetz <gs...@t-online.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gs...@t-online.de

--- Comment #9 from G. Steinmetz <gs...@t-online.de> ---

Backtrace for slightly modified example from comment 4 :


$ cat z1.f90
program p
  type t
    integer :: m(1,1)
  end type
  type(t), parameter :: x(1) = [ t(789) ]
  integer :: f(1,1)
  f = (x(1)%m)
  print *, f
end


$ gfortran-8-20180121 -std=f2008 -c z1.f90
f951: internal compiler error: Segmentation fault
0xb90cbf crash_signal
        ../../gcc/toplev.c:325
0x6a61e3 gfc_clear_shape(__mpz_struct (*) [1], int)
        ../../gcc/fortran/expr.c:412
0x6a61e3 gfc_free_shape(__mpz_struct (**) [1], int)
        ../../gcc/fortran/expr.c:422
0x6a630d free_expr0
        ../../gcc/fortran/expr.c:503
0x6a64c0 gfc_replace_expr(gfc_expr*, gfc_expr*)
        ../../gcc/fortran/expr.c:615
0x6a9b30 simplify_const_ref
        ../../gcc/fortran/expr.c:1722
0x6aa11d gfc_simplify_expr(gfc_expr*, int)
        ../../gcc/fortran/expr.c:2004
0x6aa21d simplify_parameter_variable
        ../../gcc/fortran/expr.c:1869
0x6aa106 gfc_simplify_expr(gfc_expr*, int)
        ../../gcc/fortran/expr.c:1976
0x6a9c52 simplify_intrinsic_op
        ../../gcc/fortran/expr.c:1105
0x6a9c52 gfc_simplify_expr(gfc_expr*, int)
        ../../gcc/fortran/expr.c:1965
0x70c3ef resolve_operator
        ../../gcc/fortran/resolve.c:4155
0x70c3ef gfc_resolve_expr(gfc_expr*)
        ../../gcc/fortran/resolve.c:6699
0x7125e0 gfc_resolve_code(gfc_code*, gfc_namespace*)
        ../../gcc/fortran/resolve.c:11065
0x71507a resolve_codes
        ../../gcc/fortran/resolve.c:16465
0x71517e gfc_resolve(gfc_namespace*)
        ../../gcc/fortran/resolve.c:16500
0x6feafa resolve_all_program_units
        ../../gcc/fortran/parse.c:6042
0x6feafa gfc_parse_file()
        ../../gcc/fortran/parse.c:6292
0x74520f gfc_be_parse_file
        ../../gcc/fortran/f95-lang.c:204


---


Compiles and works for me without parameter attribute :


$ cat z2.f90
program p
  type t
    integer :: m(1,1)
  end type
  type(t) :: x(1) = [ t(789) ]
  integer :: f(1,1)
  f = (x(1)%m)
  print *, f
end


$ gfortran-8-20180121 -std=f2008 -static-libgfortran z2.f90
$ a.out
         789
$

Reply via email to