http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49562
janus at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|ice-on-invalid-code |ice-on-valid-code Summary|[4.6/4.7 Regression] [OOP] |[4.6/4.7 Regression] [OOP] |ICE-on-invalid: assigning |assigning value to |value to type-bound |type-bound function |function | --- Comment #5 from janus at gcc dot gnu.org 2011-06-28 12:52:58 UTC --- Note: You can get the same ICE on *valid* code, if you give the return value of 'ice_func' the POINTER attribute (allowed by F08): module ice type::ice_type contains procedure::ice_func end type ice_type contains pure function ice_func(this) integer, pointer :: ice_func class(ice_type),intent(in)::this ice_func=1 end function ice_func subroutine ice_sub(a) class(ice_type)::a a%ice_func()=1 ! This is valid now end subroutine ice_sub end module ice Unfortunately this test case is rejected with the patch in comment #2.