I get the following ICE:
test.f90: In function MAIN__:
test.f90:29: internal compiler error: in gfc_get_symbol_decl, at
fortran/trans-decl.c:877
Please submit a full bug report,
when compiling this code:
module InternalCompilerError
type Byte
private
character(len=1) :: singleByte
end type
type (Byte) :: BytesPrototype(1)
type UserType
real :: r
end type
contains
function UserTypeToBytes(user) result (bytes)
type(UserType) :: user
type(Byte) :: bytes(size(transfer(user, BytesPrototype)))
bytes = transfer(user, BytesPrototype)
end function
subroutine DoSomethingWithBytes(bytes)
type(Byte), intent(in) :: bytes(:)
end subroutine
end module
program main
use InternalCompilerError
type (UserType) :: user
! The following line causes the ICE
call DoSomethingWithBytes( UserTypeToBytes(user) )
end program
As indicated in the comments, the ICE is caused by the line passing a function
result to a subroutine.
Kind regards,
Drew
--
Summary: ICE involving transfer function, and passing function
return to subroutine
Product: gcc
Version: 4.3.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.3.0 20070325 (experimental)
GCC target triplet: powerpc-apple-darwin8
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31424