This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ICE with gfortran 4.3.3 20081226 and gfortran 4.4.0 20081226


On Mon, Dec 29, 2008 at 09:01:28PM +0100, marco restelli wrote:
> GNU Fortran (GCC) 4.4.0 20081226 (experimental) [trunk revision 142926]
> gfortran -c ice-test.f90
> ice-test.f90:85: internal compiler error: in check_host_association,
> at fortran/resolve.c:4369
> 

Here's a substantially reduced testcase.  The problem 
appears to be resolution of the multiplication at the
end of the code.  See comment below:

-- 
Steve

module mod_symmon

  implicit none

  public :: t_symmon, operator(*)

  private

  type t_symmon
    integer :: nsv
  end type t_symmon

  interface operator(*)
    module procedure mult
  end interface

  contains

    elemental function mult(m1,m2) result(m)
      type(t_symmon), intent(in) :: m1, m2
      type(t_symmon) :: m
    end function mult

end module mod_symmon

module mod_sympoly

  use mod_symmon, only: t_symmon, operator(*)

  implicit none

  public :: t_symmon, t_sympol, operator(*)

  private

  type t_sympol
    integer :: nmon
    type(t_symmon), allocatable :: mons(:)
  end type t_sympol

  interface operator(*)
    module procedure mult
  end interface

  contains

    elemental function mult(p1,p2) result(p)
      type(t_sympol), intent(in) :: p1,p2
      type(t_sympol) :: p
      type(t_symmon) :: mons(2)
      ! Comment out this line and the code will compile.
      mons(1) = p1%mons(1) * p2%mons(1)
    end function mult

end module mod_sympoly


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]