https://gcc.gnu.org/g:86451e10f6e3bad0c719a9e30f1d9dea36819025

commit r15-1710-g86451e10f6e3bad0c719a9e30f1d9dea36819025
Author: Jørgen Kvalsvik <j...@lambda.is>
Date:   Fri Jun 28 08:35:31 2024 +0200

    Use move-aware auto_vec in map
    
    Using auto_vec rather than vec for means the vectors are release
    automatically upon return, to stop the leak. The problem seems is that
    auto_vec<T, N> is not really move-aware, only the <T, 0> specialization
    is.
    
    gcc/ChangeLog:
    
            * tree-profile.cc (find_conditions): Use auto_vec without
            embedded storage.

Diff:
---
 gcc/tree-profile.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/tree-profile.cc b/gcc/tree-profile.cc
index 8c9945847ca..153c9323040 100644
--- a/gcc/tree-profile.cc
+++ b/gcc/tree-profile.cc
@@ -876,7 +876,7 @@ find_conditions (struct function *fn)
     make_top_index (fnblocks, ctx.B1, ctx.top_index);
 
     /* Bin the Boolean expressions so that exprs[id] -> [x1, x2, ...].  */
-    hash_map<int_hash<unsigned, 0>, auto_vec<basic_block, 8>> exprs;
+    hash_map<int_hash<unsigned, 0>, auto_vec<basic_block>> exprs;
     for (basic_block b : fnblocks)
     {
        const unsigned uid = condition_uid (fn, b);

Reply via email to