http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55501
--- Comment #3 from janus at gcc dot gnu.org 2012-11-28 09:40:33 UTC ---
The backtrace one gets on trunk is:
0x669272 gfc_conv_structure(gfc_se*, gfc_expr*, int)
/home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:5971
0x667dbb gfc_conv_initializer(gfc_expr*, gfc_typespec*, tree_node*, bool, bool,
bool)
/home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:5550
0x648799 gfc_get_symbol_decl(gfc_symbol*)
/home/jweil/gcc48/trunk/gcc/fortran/trans-decl.c:1480
That line (trans-expr.c:5971) is the following assert:
gcc_assert (expr->expr_type == EXPR_STRUCTURE);
which fails because we have an EXPR_FUNCTION.