]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fortran: fix minor frontend GMP leaks
authorHarald Anlauf <anlauf@gmx.de>
Tue, 13 Aug 2024 19:17:45 +0000 (21:17 +0200)
committerHarald Anlauf <anlauf@gmx.de>
Wed, 14 Aug 2024 16:37:04 +0000 (18:37 +0200)
gcc/fortran/ChangeLog:

* simplify.cc (gfc_simplify_sizeof): Clear used gmp variable.
* target-memory.cc (gfc_target_expr_size): Likewise.

gcc/fortran/simplify.cc
gcc/fortran/target-memory.cc

index 8ddd491de113c47da5ffa4a0a4e5a5cfa5d894aa..953d59efd70e70a4f461bbed0e9bc23d92a8fc01 100644 (file)
@@ -7778,9 +7778,13 @@ gfc_simplify_sizeof (gfc_expr *x)
          || x->ts.u.cl->length->expr_type != EXPR_CONSTANT))
     return NULL;
 
-  if (x->rank && x->expr_type != EXPR_ARRAY
-      && !gfc_array_size (x, &array_size))
-    return NULL;
+  if (x->rank && x->expr_type != EXPR_ARRAY)
+    {
+      if (!gfc_array_size (x, &array_size))
+       return NULL;
+
+      mpz_clear (array_size);
+    }
 
   result = gfc_get_constant_expr (BT_INTEGER, gfc_index_integer_kind,
                                  &x->where);
index a02db7a06e495a1e152e942fab652e75f86121ea..0a289f32d37316af10e23041c612ac94730a8206 100644 (file)
@@ -158,6 +158,8 @@ gfc_target_expr_size (gfc_expr *e, size_t *size)
        asz = mpz_get_ui (tmp);
       else
        return false;
+
+      mpz_clear (tmp);
     }
   else
     asz = 1;