From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1666) id EB8BD3858CD1; Tue, 9 Apr 2024 06:46:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EB8BD3858CD1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1712645198; bh=Qp4aZRpRvTq6O/FldFce2Y1IlpCJp9EqbCx6qkMPg8o=; h=From:To:Subject:Date:From; b=suD7zCnItfcITv9k5A6moowi8so5iF5AYeAPVjWOcTMqPp2CRHESNQdplTcTKNdqZ RRIi8RHYaBIf1KeRYkw9388K+WCdkMg8d8UQ99wyv33A0R69Y73nELoqJhxUBK3rlI u6X2QYecV2T1LyLaZdJmWrZe5ZBWBo7ycmrxGFuU= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Richard Biener To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-9855] middle-end/114604 - ranger allocates bitmap without initialized obstack X-Act-Checkin: gcc X-Git-Author: Richard Biener X-Git-Refname: refs/heads/master X-Git-Oldrev: ddee4376d15ddde9280c9a6725ddd76bf33f2871 X-Git-Newrev: d76df699b8ff792575e9df4d214c21fed0ed3b6b Message-Id: <20240409064638.EB8BD3858CD1@sourceware.org> Date: Tue, 9 Apr 2024 06:46:38 +0000 (GMT) List-Id: https://gcc.gnu.org/g:d76df699b8ff792575e9df4d214c21fed0ed3b6b commit r14-9855-gd76df699b8ff792575e9df4d214c21fed0ed3b6b Author: Richard Biener 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); } // ------------------------------------------------------------------------