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.
This commit is contained in:
Richard Biener 2024-04-08 10:50:18 +02:00
parent ddee4376d1
commit d76df699b8

View file

@ -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);
}
// ------------------------------------------------------------------------