]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fortran: frontend passes do_subscript leaks gmp memory [PR97345]
authorHarald Anlauf <anlauf@gmx.de>
Tue, 10 Jan 2023 21:41:17 +0000 (22:41 +0100)
committerHarald Anlauf <anlauf@gmx.de>
Tue, 10 Jan 2023 21:41:17 +0000 (22:41 +0100)
gcc/fortran/ChangeLog:

PR fortran/97345
* frontend-passes.cc (do_subscript): Clear used gmp variables.

gcc/fortran/frontend-passes.cc

index 612c12d233d108bfcb4ba240a6145e9755205f87..db2b98290d61be42c08285e7ab70f5a3ae3968e7 100644 (file)
@@ -2892,7 +2892,12 @@ do_subscript (gfc_expr **e)
 
                  cmp = mpz_cmp (do_end, do_start);
                  if ((sgn > 0 && cmp < 0) || (sgn < 0 && cmp > 0))
-                   break;
+                   {
+                     mpz_clear (do_start);
+                     mpz_clear (do_end);
+                     mpz_clear (do_step);
+                     break;
+                   }
                }
 
              /* May have to correct the end value if the step does not equal
@@ -2965,6 +2970,12 @@ do_subscript (gfc_expr **e)
                      mpz_clear (val);
                    }
                }
+
+             if (have_do_start)
+               mpz_clear (do_start);
+             if (have_do_end)
+               mpz_clear (do_end);
+             mpz_clear (do_step);
            }
        }
     }