This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: fortran/27351: Memory leak in gfc_conv_array_transpose


gfc_conv_array_transpose has a gcc_assert which accesses the memory
freed by gfc_conv_expr_descriptor. This patch moves it before
gfc_conv_expr_descriptor.


H.J.
----
2006-04-28  H.J. Lu  <hongjiu.lu@intel.com>

	PR fortran/27351
	* trans-array.c (gfc_conv_array_transpose): Move gcc_assert
	before gfc_conv_expr_descriptor.

--- gcc/fortran/trans-array.c.leak	2006-04-28 11:28:22.000000000 -0700
+++ gcc/fortran/trans-array.c	2006-04-28 15:27:11.000000000 -0700
@@ -702,6 +702,8 @@ gfc_conv_array_transpose (gfc_se * se, g
 
   src_info = &src_ss->data.info;
   dest_info = &dest_ss->data.info;
+  gcc_assert (dest_info->dimen == 2);
+  gcc_assert (src_info->dimen == 2);
 
   /* Get a descriptor for EXPR.  */
   gfc_init_se (&src_se, NULL);
@@ -722,8 +724,6 @@ gfc_conv_array_transpose (gfc_se * se, g
 
   /* Copy the dimension information, renumbering dimension 1 to 0 and
      0 to 1.  */
-  gcc_assert (dest_info->dimen == 2);
-  gcc_assert (src_info->dimen == 2);
   for (n = 0; n < 2; n++)
     {
       dest_info->delta[n] = gfc_index_zero_node;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]