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

commit r14-9855-gd76df699b8ff792575e9df4d214c21fed0ed3b6b
Author: Richard Biener <rguent...@suse.de>
Date:   Mon Apr 8 10:50:18 2024 +0200

    middle-end/114604 - ranger allocates bitmap without initialized obstack
    
    The following fixes ranger bitmap allocation when invoked from IPA
    context where the global bitmap obstack possibly isn't initialized.
    Instead of trying to use one of the ranger obstacks the following
    simply initializes the global bitmap obstack around an active ranger.
    
            PR middle-end/114604
            * gimple-range.cc (enable_ranger): Initialize the global
            bitmap obstack.
            (disable_ranger): Release it.

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

diff --git a/gcc/gimple-range.cc b/gcc/gimple-range.cc
index c16b776c1e3..4d3b1ce8588 100644
--- a/gcc/gimple-range.cc
+++ b/gcc/gimple-range.cc
@@ -689,6 +689,8 @@ enable_ranger (struct function *fun, bool use_imm_uses)
 {
   gimple_ranger *r;
 
+  bitmap_obstack_initialize (NULL);
+
   gcc_checking_assert (!fun->x_range_query);
   r = new gimple_ranger (use_imm_uses);
   fun->x_range_query = r;
@@ -705,6 +707,8 @@ disable_ranger (struct function *fun)
   gcc_checking_assert (fun->x_range_query);
   delete fun->x_range_query;
   fun->x_range_query = NULL;
+
+  bitmap_obstack_release (NULL);
 }
 
 // ------------------------------------------------------------------------

Reply via email to