re PR fortran/18375 (ICE when compiling spec benchmark fma3d)
authorPaul Brook <paul@codesourcery.com>
Wed, 10 Nov 2004 20:03:21 +0000 (20:03 +0000)
committerPaul Brook <pbrook@gcc.gnu.org>
Wed, 10 Nov 2004 20:03:21 +0000 (20:03 +0000)
PR fortran/18375
* trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
* trans-io.c (transfer_array_component): Ditto.

From-SVN: r90449

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

index 2657529757053d50986c9a8334224164cb734fd4..faeebac9caa3c49a2b0fe304781df66fea094685 100644 (file)
@@ -1,3 +1,9 @@
+2004-11-10  Paul Brook  <paul@codesourcery.com>
+
+       PR fortran/18375
+       * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
+       * trans-io.c (transfer_array_component): Ditto.
+
 2004-11-10  Paul Brook  <paul@codesourcery.com>
 
        * invoke.texi: Fix typo.
index d6da9bf96db1611ecb0687358427a123f42313e2..8832b33f6db27342c81475346216996ab4bd6639 100644 (file)
@@ -1566,12 +1566,12 @@ gfc_trans_subarray_assign (tree dest, gfc_component * cm, gfc_expr * expr)
   gfc_add_block_to_block (&block, &loop.pre);
   gfc_add_block_to_block (&block, &loop.post);
 
-  gfc_cleanup_loop (&loop);
-
   for (n = 0; n < cm->as->rank; n++)
     mpz_clear (lss->shape[n]);
   gfc_free (lss->shape);
 
+  gfc_cleanup_loop (&loop);
+
   return gfc_finish_block (&block);
 }
 
index d5e8df6d2dfb9f0c60263df950883443b52dbb71..194856f1a30df2516f8e6ed07b69062aae05c58c 100644 (file)
@@ -1222,12 +1222,12 @@ transfer_array_component (tree expr, gfc_component * cm)
   gfc_add_block_to_block (&block, &loop.pre);
   gfc_add_block_to_block (&block, &loop.post);
 
-  gfc_cleanup_loop (&loop);
-
   for (n = 0; n < cm->as->rank; n++)
     mpz_clear (ss->shape[n]);
   gfc_free (ss->shape);
 
+  gfc_cleanup_loop (&loop);
+
   return gfc_finish_block (&block);
 }