https://gcc.gnu.org/g:429a5fe400362823eb3af7df03435d51b51e25d9

commit r16-7704-g429a5fe400362823eb3af7df03435d51b51e25d9
Author: Philipp Tomsich <[email protected]>
Date:   Mon Feb 23 11:05:06 2026 +0100

    avoid-store-forwarding: Fix sbitmap memory leak in process_store_forwarding
    
    forwarded_bytes was allocated with sbitmap_alloc but never freed on any
    of the function's return paths.  Use auto_sbitmap instead, which calls
    sbitmap_free in its destructor.
    
    gcc/ChangeLog:
    
            * avoid-store-forwarding.cc
            (store_forwarding_analyzer::process_store_forwarding): Use
            auto_sbitmap for forwarded_bytes to ensure it is freed on all
            return paths.
    
    Reviewed-By: Konstantinos Eleftheriou <[email protected]>

Diff:
---
 gcc/avoid-store-forwarding.cc | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/gcc/avoid-store-forwarding.cc b/gcc/avoid-store-forwarding.cc
index 33446beb0091..f9c43a2ec460 100644
--- a/gcc/avoid-store-forwarding.cc
+++ b/gcc/avoid-store-forwarding.cc
@@ -176,9 +176,7 @@ process_store_forwarding (vec<store_fwd_info> &stores, 
rtx_insn *load_insn,
      We can also eliminate stores on addresses that are overwritten
      by later stores.  */
 
-  sbitmap forwarded_bytes = sbitmap_alloc (load_size);
-  bitmap_clear (forwarded_bytes);
-
+  auto_sbitmap forwarded_bytes (load_size);
   unsigned int i;
   store_fwd_info* it;
   auto_vec<store_fwd_info> redundant_stores;

Reply via email to