This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
PATCH: fortran/27351: Memory leak in gfc_conv_array_transpose
- From: "H. J. Lu" <hjl at lucon dot org>
- To: gcc-patches at gcc dot gnu dot org
- Cc: fortran at gcc dot gnu dot org
- Date: Fri, 28 Apr 2006 15:45:48 -0700
- Subject: 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;