This ICE arises:

bug2.f90: In function ‘MAIN__’:
bug2.f90:30: internal compiler error: in gimplify_var_or_parm_decl, at
gimplify.c:1665


when compiling the following code:


module modA
  implicit none
  private 
  public :: sub
  interface sub
    module procedure subA
    module procedure subB
  end interface
contains
  subroutine subA(key,a)
    integer, intent(out)    :: a(:) 
    character(*),intent(in) :: key
    a = 1   
  end subroutine
  subroutine subB(key,a)
    real, intent(out) :: a(:) 
    character(*),intent(in) :: key
    a = 1.0 
  end subroutine
end module

program test
  use modA
  type t  
    integer :: i
    real :: energy
  end type
  type (t) :: a(5) 
  call sub('blah',a%energy)
  call sub('blah',a%i)
end program 


The ICE only occurs if you call the overloaded subroutine multiple times in the
same scope, for different components of the derived type. If you make one call
for one component, compilation succeeds.


-- 
           Summary: ICE passing components of array of derived type
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: drewmccormack at mac dot com
 GCC build triplet: gcc version 4.2.0 20060805 (experimental)
GCC target triplet: powerpc-apple-darwin8.7.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28885

Reply via email to