http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51966
--- Comment #5 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-01-24 09:48:28 UTC --- (In reply to comment #4) > type(Deriv), save :: DepEcoSystem = Deriv(DEF_ECOSYSTEMS(1)) Here, the problem is that in #0 gfc_conv_string_init (length=0x2aaaacf3b720, expr=0x16c1170) expr->type == EXPR_ARRAY. Hence, the following fails: gcc_assert (expr->expr_type == EXPR_CONSTANT); #1 in gfc_conv_initializer at fortran/trans-expr.c:4940 #2 in gfc_conv_structure at fortran/trans-expr.c:5396 #3 in gfc_conv_initializer at fortran/trans-expr.c:4933 #4 in gfc_get_symbol_decl at fortran/trans-decl.c:1476 Also that version works with GCC 4.5. (In reply to comment #3) > [2009-07-23] Revision 162456 is OK, > [2010-09-29] revision 164728 gives the ICE. Also 2010-08-28-r163612 fails. I wonder whether the patch for PR 44857 (2010-08-04, Rev. 162863) is the culprit: http://gcc.gnu.org/ml/fortran/2010-08/msg00034.html