http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47730
Summary: ICE as a consequence of invalid source code attempting
to register a type-bound procedure
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: [email protected]
ReportedBy: [email protected]
The code below produces an ICE after reporting that assign_square must be a
module procedure or an external procedure. It seems related to bug #46849
module geometrical_objects
implicit none
type, abstract :: shape
end type shape
type, extends(shape) :: rectangle
real :: width, height
end type rectangle
type, extends(rectangle) :: square
contains
procedure :: assign_square
end type square
contains
subroutine assign_rectangle( this, that )
class(shape), intent(inout) :: this
class(rectangle), intent(in) :: that
select type( that )
class is (rectangle)
end select
end subroutine assign_rectangle
subroutine assign_square( this, that )
class(shape), intent(inout) :: this
class(square), intent(in) :: that
end subroutine assign_square
end module geometrical_objects