From c69a7fb7a6c969ff242f8ba82c52cd330e290363 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 29 Apr 2006 14:25:42 +0000 Subject: [PATCH] re PR fortran/27351 (Use variable after free in gfc_conv_array_transpose) 2006-04-29 H.J. Lu PR fortran/27351 * trans-array.c (gfc_conv_array_transpose): Move gcc_assert before gfc_conv_expr_descriptor. From-SVN: r113375 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/trans-array.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index b64b6c792be..dcb73931010 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2006-04-29 H.J. Lu + + PR fortran/27351 + * trans-array.c (gfc_conv_array_transpose): Move gcc_assert + before gfc_conv_expr_descriptor. + 2006-04-23 Paul Thomas PR fortran/25099 diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index fcd2223d96b..a5042eadaf1 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -702,6 +702,8 @@ gfc_conv_array_transpose (gfc_se * se, gfc_expr * expr) 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, gfc_expr * expr) /* 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; -- 2.30.2