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 in check_host_association, trunk binaries


Dear Marco,

This is a regression, which produces an ICE at the same place as
PR38665 but for a totally different reason.  I introduced it in rev
141542, so it has been present since 11/03/08.  I note that this part
of the PR37445 patch was not mentioned in the ChangeLog, so I will
remedy that. In fact, this is trivially fixed:

check_host_association is using the symbol name for its check.  This
means that renamed module symbols, such as in your testcase, manage to
screw up the checking and manage to get referenced, rather than the
contained symbol.

I will raise the PR and will fix it as obvious in the next day or so.

Cheers

Paul

On Thu, Jan 8, 2009 at 10:44 AM, marco restelli <mrestelli@gmail.com> wrote:
> Dear all,
>   this might be related to bug 38665, which I see is not closed yet,
> so I apologize in case I am reporting a problem you are already aware
> of. Anyway, I saw that the latest trunk binary now compiles the
> test case attached in
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38665
> and I tried it on my code. I do get past the problem originally
> reported in
> http://mail.google.com/mail/?shva=1#label/gfortran/11e845633d09cc11
> but then I get an internal compiler error on another host association
> issue. Attached is a reduced test case.
>
> Best regards,
>   Marco Restelli
>
> System:
> Linux 2.6.23-gentoo-r6 x86_64 AMD Turion(tm) 64 Mobile Technology
> ML-32 AuthenticAMD GNU/Linux
>
> ice-test.f90:6: internal compiler error: in check_host_association, at
> fortran/resolve.c:4353
> Please submit a full bug report,
> with preprocessed source if appropriate.
>
> gfortran -c ice-test.f90
> ice-test.f90:6: internal compiler error: in check_host_association, at
> fortran/resolve.c:4353
>
> gfortran --version
> GNU Fortran (GCC) 4.4.0 20090108 (experimental) [trunk revision 143177]
> Copyright (C) 2008 Free Software Foundation, Inc.
>
>
> module mod_a
>  implicit none
>  public :: fun
>  private
> contains
>  pure function fun(x) result(mu)
>  real, intent(in) :: x(:,:)
>  real :: mu(2,2,size(x,2))
>  mu = 2.0
>  end function fun
> end module mod_a
>
>
> module mod_b
> ! Changing fun to fun2 in this module works.
>
>  use mod_a, only: &
>   a_fun => fun
>
>  implicit none
>  private
> contains
>
>  pure function fun(x) result(mu)
>  !pure function fun2(x) result(mu)
>  real, intent(in) :: x(:,:)
>  real :: mu(2,2,size(x,2))
>
>     mu = a_fun(x)
>
>  end function fun
>  !end function fun2
>
> end module mod_b
>



-- 
The knack of flying is learning how to throw yourself at the ground and miss.
       --Hitchhikers Guide to the Galaxy


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