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