From 7adac79a3d5420b9683e9fe38b2b526f26c2c225 Mon Sep 17 00:00:00 2001 From: Janus Weil Date: Sun, 31 Jan 2010 22:56:02 +0100 Subject: re PR fortran/42888 (ICE in fold_convert_loc, at fold-const.c:2670) gcc/fortran/ 2010-01-31 Janus Weil PR fortran/42888 * resolve.c (resolve_allocate_expr): Move default initialization code here from gfc_trans_allocate. * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for EXEC_INIT_ASSIGN. * trans-expr.c (gfc_trans_class_assign): Handle default initialization of CLASS variables via memcpy. * trans-stmt.c (gfc_trans_allocate): Move default initialization code to resolve_allocate_expr. gcc/testsuite/ 2010-01-31 Janus Weil PR fortran/42888 * gfortran.dg/allocate_derived_2.f90: New test. From-SVN: r156418 --- gcc/fortran/trans.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gcc/fortran/trans.c') diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c index a107392..a5bb641 100644 --- a/gcc/fortran/trans.c +++ b/gcc/fortran/trans.c @@ -1098,7 +1098,10 @@ gfc_trans_code (gfc_code * code) break; case EXEC_INIT_ASSIGN: - res = gfc_trans_init_assign (code); + if (code->expr1->ts.type == BT_CLASS) + res = gfc_trans_class_assign (code); + else + res = gfc_trans_init_assign (code); break; case EXEC_CONTINUE: -- cgit v1.1