aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/fortran/ChangeLog4
-rw-r--r--gcc/fortran/trans-stmt.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index dc0bfbb..4f8a609 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,9 @@
2010-10-06 Mikael Morin <mikael@gcc.gnu.org>
+ * trans-stmt.c (gfc_trans_forall_1): Free forall struct at the end.
+
+2010-10-06 Mikael Morin <mikael@gcc.gnu.org>
+
* trans-expr.c (get_proc_ptr_comp): Restore initial expression type
before calling gfc_free_expr.
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index 12ebe4a..1a4828a 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -3462,6 +3462,13 @@ gfc_trans_forall_1 (gfc_code * code, forall_info * nested_forall_info)
gfc_free (varexpr);
gfc_free (saved_vars);
+ for (this_forall = info->this_loop; this_forall;)
+ {
+ iter_info *next = this_forall->next;
+ gfc_free (this_forall);
+ this_forall = next;
+ }
+
/* Free the space for this forall_info. */
gfc_free (info);