------- 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

Reply via email to