trans-expr.c (gfc_copy_class_to_class, [...]): Free loop and ss data.
authorTobias Burnus <burnus@net-b.de>
Wed, 22 Aug 2012 05:54:24 +0000 (07:54 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Wed, 22 Aug 2012 05:54:24 +0000 (07:54 +0200)
2012-08-22  Tobias Burnus  <burnus@net-b.de>

        * trans-expr.c (gfc_copy_class_to_class,
        gfc_trans_arrayfunc_assign): Free loop and ss data.
        * trans-intrinsic.c (gfc_trans_arrayfunc_assign): Free ss data.

From-SVN: r190586

gcc/fortran/ChangeLog
gcc/fortran/trans-expr.c
gcc/fortran/trans-intrinsic.c

index c4dad21000a48ba2f5e20303fbfde83aef7febad..9fd77d7016e962947a4caf26719eaa7191b664b9 100644 (file)
@@ -1,3 +1,9 @@
+2012-08-22  Tobias Burnus  <burnus@net-b.de>
+
+       * trans-expr.c (gfc_copy_class_to_class,
+       gfc_trans_arrayfunc_assign): Free loop and ss data.
+       * trans-intrinsic.c (gfc_trans_arrayfunc_assign): Free ss data.
+
 2012-08-21  Tobias Burnus  <burnus@net-b.de>
 
        * parse.c (parse_contained): Include EXEC_END_PROCEDURE
index 4f7d02620ad177de1aef3d66ff12ff2067fb2a79..cfb08621219628060f4489b26b9bb6cfa4a1c052 100644 (file)
@@ -533,6 +533,7 @@ gfc_copy_class_to_class (tree from, tree to, tree nelems)
       loop.to[0] = nelems;
       gfc_trans_scalarizing_loops (&loop, &loopbody);
       gfc_add_block_to_block (&body, &loop.pre);
+      gfc_cleanup_loop (&loop);
       tmp = gfc_finish_block (&body);
     }
   else
@@ -6770,6 +6771,7 @@ gfc_trans_arrayfunc_assign (gfc_expr * expr1, gfc_expr * expr2)
       if (!expr2->value.function.isym)
        {
          realloc_lhs_loop_for_fcn_call (&se, &expr1->where, &ss, &loop);
+         gfc_cleanup_loop (&loop);
          ss->is_alloc_lhs = 1;
        }
       else
@@ -6778,6 +6780,7 @@ gfc_trans_arrayfunc_assign (gfc_expr * expr1, gfc_expr * expr2)
 
   gfc_conv_function_expr (&se, expr2);
   gfc_add_block_to_block (&se.pre, &se.post);
+  gfc_free_ss (se.ss);
 
   return gfc_finish_block (&se.pre);
 }
index fac29c7f5f60a5b6f459b65f00c22a45a82b0d41..d0aebe94774b0ff98a59de7aed604d9b746c5835 100644 (file)
@@ -1328,6 +1328,7 @@ gfc_conv_intrinsic_rank (gfc_se *se, gfc_expr *expr)
   argse.descriptor_only = 1;
 
   gfc_conv_expr_descriptor (&argse, expr->value.function.actual->expr, ss);
+  gfc_free_ss (ss);
   gfc_add_block_to_block (&se->pre, &argse.pre);
   gfc_add_block_to_block (&se->post, &argse.post);