re PR fortran/27351 (Use variable after free in gfc_conv_array_transpose)
authorH.J. Lu <hongjiu.lu@intel.com>
Sat, 29 Apr 2006 14:25:42 +0000 (14:25 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Sat, 29 Apr 2006 14:25:42 +0000 (07:25 -0700)
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

gcc/fortran/ChangeLog
gcc/fortran/trans-array.c

index b64b6c792be136fb6b886785483121be521dcd38..dcb739310108e234bc1711def49c66d75984bc21 100644 (file)
@@ -1,3 +1,9 @@
+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.
+
 2006-04-23  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/25099
index fcd2223d96b041209cbc41cc548c826cdd909aae..a5042eadaf168cc931e6b67af41a46fafb6d5fb2 100644 (file)
@@ -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;