------- Comment #1 from burnus at gcc dot gnu dot org 2010-09-22 08:35 ------- Fails in gfc_trans_scalar_assign for the line:
gfc_add_modify (&block, lse->expr, fold_convert (TREE_TYPE (lse->expr), rse->expr)); as switch (TREE_CODE (type)) in fold_convert reaches gcc_unreachable. Hereby, (gdb) p lse->expr->common.type->base->code $1 = RECORD_TYPE (gdb) p rse->expr->common.type->base->code $2 = RECORD_TYPE And both types are different, cf. (gdb) p rse->expr->common.type $4 = (tree) 0x2aaaad533e70 (gdb) p lse->expr->common.type $5 = (tree) 0x2aaaad538000 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45746