aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Burnus <burnus@gcc.gnu.org>2012-12-09 16:29:32 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2012-12-09 16:29:32 +0100
commitc5c1aeb2f2566d0a53dca7cd04c97dd7bb8c5a22 (patch)
tree196252a6163454f49b6577ceb876e04ba0f32d45
parent2608ca66e1059ea74c34e54a7cfc78264638f068 (diff)
downloadgcc-c5c1aeb2f2566d0a53dca7cd04c97dd7bb8c5a22.zip
gcc-c5c1aeb2f2566d0a53dca7cd04c97dd7bb8c5a22.tar.gz
gcc-c5c1aeb2f2566d0a53dca7cd04c97dd7bb8c5a22.tar.bz2
trans-array.c (gfc_deallocate_scalar_with_status): Use NULL_TREE in the call to gfc_deallocate_scalar_with_status.
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. From-SVN: r194332
-rw-r--r--gcc/fortran/ChangeLog11
-rw-r--r--gcc/fortran/trans-array.c2
-rw-r--r--gcc/fortran/trans-decl.c7
-rw-r--r--gcc/fortran/trans-stmt.c2
4 files changed, 16 insertions, 6 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 12d53ee..aa9eb9f 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 24adfde..0689892 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 3bee178..b236050 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 79dc27d..6fe8b77 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. */