PATCH: fortran/27351: Memory leak in gfc_conv_array_transpose

H. J. Lu hjl@lucon.org
Fri Apr 28 22:45:00 GMT 2006


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;



More information about the Fortran mailing list