diff options
author | Tobias Burnus <burnus@net-b.de> | 2012-12-09 15:29:32 +0000 |
---|---|---|
committer | Tobias Burnus <burnus@net-b.de> | 2012-12-09 15:29:32 +0000 |
commit | ffb2a52e520f63fe11338b9deab552c86e2722d1 (patch) | |
tree | 196252a6163454f49b6577ceb876e04ba0f32d45 | |
parent | a403bf5ef069de09aa02c0de59df7dbe9ae8ff40 (diff) |
2012-12-09 Tobias Burnus <burnus@net-b.de>
* trans-array.c (gfc_deallocate_scalar_with_status): Use
NULL_TREE in the call to gfc_deallocate_scalar_with_status.
* trans-decl.c (gfc_trans_deferred_vars): Pass symbol.
* trans-stmt.c (gfc_trans_deallocate): Pass polymorphic
* variable.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@194332 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/fortran/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/fortran/trans-array.c | 2 | ||||
-rw-r--r-- | gcc/fortran/trans-decl.c | 7 | ||||
-rw-r--r-- | gcc/fortran/trans-stmt.c | 2 |
4 files changed, 16 insertions, 6 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 12d53eeb926..aa9eb9f6de7 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,7 +1,16 @@ +2012-12-09 Tobias Burnus <burnus@net-b.de> + + * trans-array.c (gfc_deallocate_scalar_with_status): Use + NULL_TREE in the call to gfc_deallocate_scalar_with_status. + * trans-decl.c (gfc_trans_deferred_vars): Pass symbol. + * trans-stmt.c (gfc_trans_deallocate): Pass polymorphic variable. + 2012-12-09 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/55593 - * gfortran.dg/do_check_8.f90: New test. + * frontend-passes.c (doloop_code): Use resolved_sym + instead of n.sym->formal for formal argument list + to get the correct version for all generic subroutines. 2012-12-05 Tobias Burnus <burnus@net-b.de> diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index 24adfdeafbe..06898920369 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -7589,7 +7589,7 @@ structure_alloc_comps (gfc_symbol * der_type, tree decl, CLASS_DATA (c)->attr.codimension); else { - tmp = gfc_deallocate_scalar_with_status (comp, NULL, true, NULL, + tmp = gfc_deallocate_scalar_with_status (comp, NULL_TREE, true, NULL, CLASS_DATA (c)->ts); gfc_add_expr_to_block (&tmpblock, tmp); called_dealloc_with_status = true; diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 3bee1781d64..b23605058d0 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -3780,9 +3780,10 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, gfc_wrapped_block * block) NULL_TREE, true, NULL, true); else - tmp = gfc_deallocate_scalar_with_status (se.expr, NULL, - true, NULL, - sym->ts); + tmp = gfc_deallocate_scalar_with_status (se.expr, NULL_TREE, + true, + gfc_lval_expr_from_sym (sym), + sym->ts); } if (sym->ts.type == BT_CLASS) { diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index 79dc27d903b..6fe8b778e65 100644 --- a/gcc/fortran/trans-stmt.c +++ b/gcc/fortran/trans-stmt.c @@ -5380,7 +5380,7 @@ gfc_trans_deallocate (gfc_code *code) else { tmp = gfc_deallocate_scalar_with_status (se.expr, pstat, false, - expr, expr->ts); + al->expr, al->expr->ts); gfc_add_expr_to_block (&se.pre, tmp); /* Set to zero after deallocation. */ |