aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-array.c
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2006-04-29 14:25:42 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2006-04-29 07:25:42 -0700
commitc69a7fb7a6c969ff242f8ba82c52cd330e290363 (patch)
treea1328cbe3ee48b6fecc3046bd5323dba07a67848 /gcc/fortran/trans-array.c
parent23bc3a894d2e6e62f47e853c02388787142c633b (diff)
downloadgcc-c69a7fb7a6c969ff242f8ba82c52cd330e290363.zip
gcc-c69a7fb7a6c969ff242f8ba82c52cd330e290363.tar.gz
gcc-c69a7fb7a6c969ff242f8ba82c52cd330e290363.tar.bz2
re PR fortran/27351 (Use variable after free in gfc_conv_array_transpose)
2006-04-29 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. From-SVN: r113375
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r--gcc/fortran/trans-array.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index fcd2223..a5042ea 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;