* [PATCH, committed] Fortran: fix FE memleak
@ 2024-01-03 19:33 Harald Anlauf
0 siblings, 0 replies; only message in thread
From: Harald Anlauf @ 2024-01-03 19:33 UTC (permalink / raw)
To: fortran, gcc-patches
[-- Attachment #1: Type: text/plain, Size: 339 bytes --]
Dear all,
I've committed the attached, simple & obvious patch for a
gmp memory leak in gfc_get_nodesc_array_type that shows
up when running f951 under valgrind e.g. on testcase
gfortran.dg/class_optional_2.f90, after regtesting on
x86_64-pc-linux-gnu.
(Note that this does not address the underlying issues
of pr55978).
Thanks,
Harald
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Fortran-fix-FE-memleak.patch --]
[-- Type: text/x-patch, Size: 1574 bytes --]
From 93c96e3ad0024a397115aa17bf29c7efc6b535a1 Mon Sep 17 00:00:00 2001
From: Harald Anlauf <anlauf@gmx.de>
Date: Wed, 3 Jan 2024 20:21:00 +0100
Subject: [PATCH] Fortran: fix FE memleak
gcc/fortran/ChangeLog:
* trans-types.cc (gfc_get_nodesc_array_type): Clear used gmp
variables.
---
gcc/fortran/trans-types.cc | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/gcc/fortran/trans-types.cc b/gcc/fortran/trans-types.cc
index e6db1c95450..676014e9b98 100644
--- a/gcc/fortran/trans-types.cc
+++ b/gcc/fortran/trans-types.cc
@@ -1795,7 +1795,7 @@ gfc_get_nodesc_array_type (tree etype, gfc_array_spec * as, gfc_packed packed,
TYPE_LANG_SPECIFIC (type) = TYPE_LANG_SPECIFIC (TREE_TYPE (type));
}
- return type;
+ goto array_type_done;
}
if (known_stride)
@@ -1814,10 +1814,6 @@ gfc_get_nodesc_array_type (tree etype, gfc_array_spec * as, gfc_packed packed,
layout_type (type);
- mpz_clear (offset);
- mpz_clear (stride);
- mpz_clear (delta);
-
/* Represent packed arrays as multi-dimensional if they have rank >
1 and with proper bounds, instead of flat arrays. This makes for
better debug info. */
@@ -1848,6 +1844,12 @@ gfc_get_nodesc_array_type (tree etype, gfc_array_spec * as, gfc_packed packed,
GFC_ARRAY_TYPE_P (type) = 1;
TYPE_LANG_SPECIFIC (type) = TYPE_LANG_SPECIFIC (TREE_TYPE (type));
}
+
+array_type_done:
+ mpz_clear (offset);
+ mpz_clear (stride);
+ mpz_clear (delta);
+
return type;
}
--
2.35.3
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-01-03 19:33 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-03 19:33 [PATCH, committed] Fortran: fix FE memleak Harald Anlauf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).