simplify.c (gfc_simplify_size): Clear temporary mpz int before returning.
authorMikael Morin <mikael@gcc.gnu.org>
Wed, 6 Oct 2010 15:15:48 +0000 (15:15 +0000)
committerMikael Morin <mikael@gcc.gnu.org>
Wed, 6 Oct 2010 15:15:48 +0000 (15:15 +0000)
2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>

* simplify.c (gfc_simplify_size): Clear temporary mpz int before
returning.

From-SVN: r165036

gcc/fortran/ChangeLog
gcc/fortran/simplify.c

index 5704021846833e78d50330ec7a811371001f1f0c..c1ed716e78f352be063544c35ac5215c1dfdc996 100644 (file)
@@ -1,3 +1,8 @@
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * simplify.c (gfc_simplify_size): Clear temporary mpz int before
+       returning.
+
 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
 
        * resolve.c (add_dt_to_dt_list): Remove unneeded if.
index cdefcb51533f9a49316eb3fb8cf4a637cf86ab15..e45ed401085ffd37d4612002b41c5795b6daf1e4 100644 (file)
@@ -5477,6 +5477,7 @@ gfc_expr *
 gfc_simplify_size (gfc_expr *array, gfc_expr *dim, gfc_expr *kind)
 {
   mpz_t size;
+  gfc_expr *return_value;
   int d;
   int k = get_kind (BT_INTEGER, kind, "SIZE", gfc_default_integer_kind);
 
@@ -5548,7 +5549,9 @@ gfc_simplify_size (gfc_expr *array, gfc_expr *dim, gfc_expr *kind)
        return NULL;
     }
 
-  return gfc_get_int_expr (k, &array->where, mpz_get_si (size));
+  return_value = gfc_get_int_expr (k, &array->where, mpz_get_si (size));
+  mpz_clear (size);
+  return return_value;
 }