OSDN Git Service

2012-08-27 Tobias Burnus <burnus@net-b.de>
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Aug 2012 14:42:50 +0000 (14:42 +0000)
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Aug 2012 14:42:50 +0000 (14:42 +0000)
        PR fortran/54384
        * trans-expr.c (gfc_trans_arrayfunc_assign): Free se.ss
        and loop.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190713 138bc75d-0d04-0410-961f-82ee72b054a4

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

index b660073..c3e6185 100644 (file)
@@ -1,5 +1,11 @@
 2012-08-27  Tobias Burnus  <burnus@net-b.de>
 
+       PR fortran/54384
+       * trans-expr.c (gfc_trans_arrayfunc_assign): Free se.ss
+       and loop.
+
+2012-08-27  Tobias Burnus  <burnus@net-b.de>
+
        PR fortran/41093
        * gfortran.h (gfc_common_head): Add "int refs".
        * match.c (gfc_match_common): Increment refs.
index ebaa238..3ab7d5d 100644 (file)
@@ -6781,6 +6781,11 @@ 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);
 
+  if (ss)
+    gfc_cleanup_loop (&loop);
+  else
+    gfc_free_ss_chain (se.ss);
+
   return gfc_finish_block (&se.pre);
 }