https://gcc.gnu.org/g:f9810728cf42ea7c3d84198aa582e53cfb2302d1

commit r15-833-gf9810728cf42ea7c3d84198aa582e53cfb2302d1
Author: Andrew MacLeod <amacl...@redhat.com>
Date:   Sat May 25 12:28:52 2024 -0400

    Delete gori_map during destruction of GORI.
    
    Forgot to free the gori_mpa object when a gori object is freed.
    
            PR tree-optimization/115208
            * value-query.cc (range_query::create_gori): Confirm gori_map is 
NULL.
            (range_query::destroy_gori): Free gori_map if one was allocated.

Diff:
---
 gcc/value-query.cc | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gcc/value-query.cc b/gcc/value-query.cc
index 0d0c0e8058e..556a0f39b09 100644
--- a/gcc/value-query.cc
+++ b/gcc/value-query.cc
@@ -188,6 +188,7 @@ void
 range_query::create_gori (int not_executable_flag, int sw_max_edges)
 {
   gcc_checking_assert (m_gori == &default_gori);
+  gcc_checking_assert (m_map == NULL);
   m_map = new gori_map ();
   gcc_checking_assert (m_map);
   m_gori = new gori_compute (*m_map, not_executable_flag, sw_max_edges);
@@ -199,6 +200,9 @@ range_query::destroy_gori ()
 {
   if (m_gori && m_gori != &default_gori)
     delete m_gori;
+  if (m_map)
+    delete m_map;
+  m_map = NULL;
   m_gori= &default_gori;
 }

Reply via email to