From: Richard Biener Date: Mon, 8 Apr 2024 08:50:18 +0000 (+0200) Subject: middle-end/114604 - ranger allocates bitmap without initialized obstack X-Git-Tag: basepoints/gcc-15~284 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d76df699b8ff792575e9df4d214c21fed0ed3b6b;p=thirdparty%2Fgcc.git 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 --git a/gcc/gimple-range.cc b/gcc/gimple-range.cc index c16b776c1e3a..4d3b1ce85884 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); } // ------------------------------------------------------------------------