------- Comment #3 from janus at gcc dot gnu dot org 2010-04-18 11:09 -------
It turns out this problem is not specific to the OOP stuff on fortran-dev, but
instead is due to an underlying problem with PROCEDURE statements (which
affects procedure pointers as well as PPCs), demonstrated by this test case:
module m_string
procedure(string_to_char) :: char1 ! segfault
! procedure(string_to_char),pointer :: char2 ! segfault
! type t_string
! procedure(string_to_char),pointer,nopass :: char3 ! segfault
! end type t_string
contains
function string_to_char (s) result(res)
character, dimension(:), intent(in) :: s
character(len=size(s)) :: res
end function string_to_char
end module m_string
All of the three forms of the PROCEDURE statement shown above trigger the same
ICE (which is also the same ICE as in comment #0 and #1, due to fortran-dev's
usage of PPCs in the implementation of polymorphic TBPs).
The above test case segfaults with 4.3, works with 4.4, and then fails again
with 4.5, 4.6 and fortran-dev. Therefore this PR is rather a 4.5 regression
than a fortran-dev regressions.
--
janus at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Keywords| |ice-on-valid-code
Last reconfirmed|0000-00-00 00:00:00 |2010-04-18 11:09:35
date| |
Summary|[fortran-dev Regression] |[4.5 Regression] ICE:
|ICE: segmentation fault in |segmentation fault in
|mio_expr |mio_expr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43227