http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49630
Summary: [OOP] ICE on obsolescent assumed length deferred type bound character function Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: boschm...@tp1.physik.uni-siegen.de CC: ja...@gcc.gnu.org Here is one more weird piece of code: module abc implicit none type,abstract::abc_abstract contains procedure(abc_interface),deferred::abc_function end type abc_abstract type,extends(abc_abstract)::abc_type contains procedure::abc_function end type abc_type abstract interface function abc_interface(this) import abc_abstract class(abc_abstract),intent(in)::this character(len=*)::abc_interface !obsolescent feature end function abc_interface end interface contains function abc_function(this) class(abc_type),intent(in)::this character(len=5)::abc_function abc_function="hello" end function abc_function subroutine do_something(this) class(abc_abstract),intent(in)::this print *,this%abc_function() end subroutine do_something end module abc gcc 4.7 terminates with a segmentation fault. I get an ICE error message on my full program, but it turned to a segfault in this reduced module. Anyway this code doesn't look right, so I have tried some workarounds like allocatable characters. But those ended up in different compiler errors. So what is the state of allocatable character functions? Are they supposed to work?