From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2136) id 6583C3864858; Thu, 10 Jun 2021 15:03:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6583C3864858 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Aldy Hernandez To: gcc-cvs@gcc.gnu.org Subject: [gcc/trunk] Use auto_vec in ssa_equiv_stack. X-Act-Checkin: gcc X-Git-Author: Aldy Hernandez X-Git-Refname: refs/heads/trunk X-Git-Oldrev: 6fcba9ef23e4261a6279a76890b2c1488cc14d12 X-Git-Newrev: 04a040d907a83af54e0a98bdba5bfabc0ef4f700 Message-Id: <20210610150338.6583C3864858@sourceware.org> Date: Thu, 10 Jun 2021 15:03:38 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2021 15:03:38 -0000 https://gcc.gnu.org/g:04a040d907a83af54e0a98bdba5bfabc0ef4f700 commit 04a040d907a83af54e0a98bdba5bfabc0ef4f700 Author: Aldy Hernandez Date: Thu Jun 10 09:20:30 2021 +0200 Use auto_vec in ssa_equiv_stack. There is a mismatch between the new and the delete for the ssa_equiv_stack class. The correct idiom should have been delete[]. It has been pointed out that perhaps a better alternative is to use an auto_vec which does everything automatically. Plus, it is more consistent with m_stack which is already an auto_vec. This patch fixes the issue in PR100984. Tested on x86-64 Linux. gcc/ChangeLog: PR tree-optimization/100984 * gimple-ssa-evrp.c (ssa_equiv_stack): Use auto_vec for replacements table. (ssa_equiv_stack::~ssa_equiv_stack): Remove. Diff: --- gcc/gimple-ssa-evrp.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/gcc/gimple-ssa-evrp.c b/gcc/gimple-ssa-evrp.c index 7e1cf51239a..eb8320ae9d8 100644 --- a/gcc/gimple-ssa-evrp.c +++ b/gcc/gimple-ssa-evrp.c @@ -53,7 +53,6 @@ class ssa_equiv_stack { public: ssa_equiv_stack (); - ~ssa_equiv_stack (); void enter (basic_block); void leave (basic_block); void push_replacement (tree name, tree replacement); @@ -61,19 +60,13 @@ public: private: auto_vec> m_stack; - tree *m_replacements; + auto_vec m_replacements; const std::pair m_marker = std::make_pair (NULL, NULL); }; ssa_equiv_stack::ssa_equiv_stack () { - m_replacements = new tree[num_ssa_names] (); -} - -ssa_equiv_stack::~ssa_equiv_stack () -{ - m_stack.release (); - delete m_replacements; + m_replacements.safe_grow_cleared (num_ssa_names); } // Pushes a marker at the given point.