]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fortran: fix frontend memory leaks for ALLOCATE with SOURCE [PR109010]
authorHarald Anlauf <anlauf@gmx.de>
Sun, 21 Sep 2025 19:54:44 +0000 (21:54 +0200)
committerHarald Anlauf <anlauf@gmx.de>
Sun, 21 Sep 2025 19:54:44 +0000 (21:54 +0200)
When running under valgrind the Fortran frontend showed several leaks
involving __gmp_default_allocate for simple code such as

  program p
    real, pointer :: x(:)
    allocate (x, source = reshape ([1.], [1]))
  end

as not all used components of the structure gfc_code were freed when a
statement was freed.  Just do so.

PR fortran/109010

gcc/fortran/ChangeLog:

* st.cc (gfc_free_statement): Also free components expr3 and expr4.

gcc/fortran/st.cc

index f7f67b18b671ae5970b51b919d5b0e9c1e73fc3d..2281bf6e03b529910d359d6d0ba99bd8e44ccb86 100644 (file)
@@ -86,6 +86,10 @@ gfc_free_statement (gfc_code *p)
     gfc_free_expr (p->expr1);
   if (p->expr2)
     gfc_free_expr (p->expr2);
+  if (p->expr3)
+    gfc_free_expr (p->expr3);
+  if (p->expr4)
+    gfc_free_expr (p->expr4);
 
   switch (p->op)
     {