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

anlauf at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code

--- Comment #1 from anlauf at gcc dot gnu.org ---
Replacing

  real,    parameter :: r(*) = x%re
  real,    parameter :: i(*) = x%im

by

  real,    parameter :: r(*) = real (x)
  real,    parameter :: i(*) = imag (x)

fixes things.

Similarly, the scalar variant

  real,    parameter :: y    = real (x(1))
  real,    parameter :: z    = imag (x(1))
  print *, y, z

works fine, but

  real,    parameter :: y    = x(1)%re
  real,    parameter :: z    = x(1)%im
  print *, y, z

ICEs in trans-array::gfc_get_descriptor_field, since we miss the
simplification.

Reply via email to