Patchwork [fortran,21/22] Various minor fixups

login
register
mail settings
Submitter Mikael Morin
Date Oct. 5, 2010, 10:11 a.m.
Message ID <20101005100948.1836.9982@gimli.local>
Download mbox | patch
Permalink /patch/66800/
State New
Headers show

Comments

Mikael Morin - Oct. 5, 2010, 10:11 a.m.
2010-10-04  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_free_ss_chain): Made non-static.
	* trans-array.h (gfc_free_ss_chain): New prototype.
	* trans-stmt.c (gfc_trans_where_2): Free ss chains.

Patch

diff --git a/trans-array.c b/trans-array.c
index b32c3ec..e17a580 100644
--- a/trans-array.c
+++ b/trans-array.c
@@ -448,7 +448,7 @@  static void gfc_free_ss (gfc_ss *);
 
 /* Free a gfc_ss chain.  */
 
-static void
+void
 gfc_free_ss_chain (gfc_ss * ss)
 {
   gfc_ss *next;
diff --git a/trans-array.h b/trans-array.h
index f363716..4b0da3e 100644
--- a/trans-array.h
+++ b/trans-array.h
@@ -81,6 +81,8 @@  void gfc_cleanup_loop (gfc_loopinfo *);
 void gfc_add_ss_to_loop (gfc_loopinfo *, gfc_ss *);
 /* Mark a SS chain as used in this loop.  */
 void gfc_mark_ss_chain_used (gfc_ss *, unsigned);
+/* Free a gfc_ss chain.  */
+void gfc_free_ss_chain (gfc_ss *);
 
 /* Calculates the lower bound and stride of array sections.  */
 void gfc_conv_ss_startstride (gfc_loopinfo *);
diff --git a/trans-stmt.c b/trans-stmt.c
index 82cddd7..01dcc56 100644
--- a/trans-stmt.c
+++ b/trans-stmt.c
@@ -3924,6 +3924,9 @@  gfc_trans_where_2 (gfc_code * code, tree mask, bool invert,
       inner_size = compute_inner_temp_size (cblock->expr1, cblock->expr1,
 					    &inner_size_body, &lss, &rss);
 
+      gfc_free_ss_chain (lss);
+      gfc_free_ss_chain (rss);
+
       /* Calculate the total size of temporary needed.  */
       size = compute_overall_iter_number (nested_forall_info, inner_size,
 					  &inner_size_body, block);