aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans.c
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2010-01-31 22:56:02 +0100
committerJanus Weil <janus@gcc.gnu.org>2010-01-31 22:56:02 +0100
commit7adac79a3d5420b9683e9fe38b2b526f26c2c225 (patch)
tree141d0f689a065770fa6cc34ecce6c668bb1bf081 /gcc/fortran/trans.c
parent355b1741d9529b17183d99b21ca692769d049c64 (diff)
downloadgcc-7adac79a3d5420b9683e9fe38b2b526f26c2c225.zip
gcc-7adac79a3d5420b9683e9fe38b2b526f26c2c225.tar.gz
gcc-7adac79a3d5420b9683e9fe38b2b526f26c2c225.tar.bz2
re PR fortran/42888 (ICE in fold_convert_loc, at fold-const.c:2670)
gcc/fortran/ 2010-01-31 Janus Weil <janus@gcc.gnu.org> 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 <janus@gcc.gnu.org> PR fortran/42888 * gfortran.dg/allocate_derived_2.f90: New test. From-SVN: r156418
Diffstat (limited to 'gcc/fortran/trans.c')
-rw-r--r--gcc/fortran/trans.c5
1 files changed, 4 insertions, 1 deletions
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: