From 3bfe6da98d7a070dcc5531b35dc74b12b5e602aa Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Sat, 28 Jan 2012 17:57:28 +0100 Subject: re PR fortran/51972 ([OOP] Wrong code as _copy does not honor CLASS components) 2012-01-28 Tobias Burnus PR fortran/51972 * trans-stmt.c (gfc_trans_allocate): Properly check whether we have a BT_CLASS which needs to be memset. 2012-01-28 Tobias Burnus PR fortran/51972 * gfortran.dg/class_allocate_12.f90: New. From-SVN: r183668 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/trans-stmt.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'gcc/fortran') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index b1e9402..076f048 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2012-01-28 Tobias Burnus + + PR fortran/51972 + * trans-stmt.c (gfc_trans_allocate): Properly check whether + we have a BT_CLASS which needs to be memset. + 2012-01-27 Tobias Burnus PR fortran/52022 diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index f264bf9..7a6f8b2 100644 --- a/gcc/fortran/trans-stmt.c +++ b/gcc/fortran/trans-stmt.c @@ -4950,7 +4950,8 @@ gfc_trans_allocate (gfc_code * code) else gfc_allocate_using_malloc (&se.pre, se.expr, memsz, stat); - if (expr->ts.type == BT_DERIVED && expr->ts.u.derived->attr.alloc_comp) + if (al->expr->ts.type == BT_DERIVED + && expr->ts.u.derived->attr.alloc_comp) { tmp = build_fold_indirect_ref_loc (input_location, se.expr); tmp = gfc_nullify_alloc_comp (expr->ts.u.derived, tmp, 0); -- cgit v1.1