http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55037
--- Comment #2 from janus at gcc dot gnu.org 2012-10-23 16:00:59 UTC --- Confirmed. It works with 4.7. Here is a variant which fails with a different ICE: implicit none type :: c_stv end type class(c_stv), allocatable :: tmp call source(tmp) contains subroutine source(y) type(c_stv), allocatable, intent(out) :: y end subroutine end internal compiler error: Segmentation fault call source(tmp) ^ 0xaacaa9 crash_signal /home/jweil/gcc48/trunk/gcc/toplev.c:335 0x5e601f contains_struct_check(tree_node*, tree_node_structure_enum, char const*, int, char const*) /home/jweil/gcc48/trunk/gcc/tree.h:3789 0x62e660 gfc_class_data_get(tree_node*) /home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:108 0x63a0a8 gfc_conv_procedure_call(gfc_se*, gfc_symbol*, gfc_actual_arglist*, gfc_expr*, vec_t<tree_node*>*) /home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:4203