This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: ICE with gfortran 4.3.3 20081226 and gfortran 4.4.0 20081226
- From: Steve Kargl <sgk at troutmask dot apl dot washington dot edu>
- To: marco restelli <mrestelli at gmail dot com>
- Cc: "fortran at gcc dot gnu dot org" <fortran at gcc dot gnu dot org>
- Date: Mon, 29 Dec 2008 13:38:56 -0800
- Subject: Re: ICE with gfortran 4.3.3 20081226 and gfortran 4.4.0 20081226
- References: <bf36c5560812291201l72c9cc62t6fab41bcc3f4e1b7@mail.gmail.com>
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