From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2209) id A79543858284; Thu, 3 Nov 2022 17:48:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A79543858284 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1667497733; bh=3UlnQS0jtZbF6BHZKxtate3FsAPAIZ5cuatQSlXJfo0=; h=From:To:Subject:Date:From; b=eSR0ddPMfWcuLloMmELxshIju6alUFeuU/UWlAkMnE1uSjAUdoN/iRjmUAVysMq1V zQ4cuV+C3IXMNY/lafeixn07F08ZfukjUh9AkvlJEYFNUH6vOmUfJ2i4bkAuuJcLs3 pPfmfs1KqOsegAw5haAVzAsk07wgYGeua1Niag44= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: David Malcolm To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-3635] analyzer: use std::unique_ptr for known functions X-Act-Checkin: gcc X-Git-Author: David Malcolm X-Git-Refname: refs/heads/master X-Git-Oldrev: accece8c9543e4f3f7bbf24989755dd0453658b7 X-Git-Newrev: 76dd2c4f2d46f16e8f9a89487e5b3c2b7d4a1369 Message-Id: <20221103174853.A79543858284@sourceware.org> Date: Thu, 3 Nov 2022 17:48:53 +0000 (GMT) List-Id: https://gcc.gnu.org/g:76dd2c4f2d46f16e8f9a89487e5b3c2b7d4a1369 commit r13-3635-g76dd2c4f2d46f16e8f9a89487e5b3c2b7d4a1369 Author: David Malcolm Date: Thu Nov 3 13:47:02 2022 -0400 analyzer: use std::unique_ptr for known functions gcc/analyzer/ChangeLog: * analyzer.h: Use std::unique_ptr for known functions. * engine.cc: Likewise. * known-function-manager.cc: Likewise. * known-function-manager.h: Likewise. gcc/testsuite/ChangeLog: * gcc.dg/plugin/analyzer_kernel_plugin.c: Use std::unique_ptr for known functions. * gcc.dg/plugin/analyzer_known_fns_plugin.c: Likewise. Signed-off-by: David Malcolm Diff: --- gcc/analyzer/analyzer.h | 2 +- gcc/analyzer/engine.cc | 4 ++-- gcc/analyzer/known-function-manager.cc | 5 +++-- gcc/analyzer/known-function-manager.h | 2 +- gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.c | 7 ++++--- gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.c | 7 ++++--- 6 files changed, 15 insertions(+), 12 deletions(-) diff --git a/gcc/analyzer/analyzer.h b/gcc/analyzer/analyzer.h index d8d3e78b20a..88fdc1d04f0 100644 --- a/gcc/analyzer/analyzer.h +++ b/gcc/analyzer/analyzer.h @@ -244,7 +244,7 @@ class plugin_analyzer_init_iface public: virtual void register_state_machine (state_machine *) = 0; virtual void register_known_function (const char *name, - known_function *) = 0; + std::unique_ptr) = 0; virtual logger *get_logger () const = 0; }; diff --git a/gcc/analyzer/engine.cc b/gcc/analyzer/engine.cc index d770c6fc29c..fe17f8f76ce 100644 --- a/gcc/analyzer/engine.cc +++ b/gcc/analyzer/engine.cc @@ -5960,10 +5960,10 @@ public: } void register_known_function (const char *name, - known_function *kf) final override + std::unique_ptr kf) final override { LOG_SCOPE (m_logger); - m_known_fn_mgr->add (name, kf); + m_known_fn_mgr->add (name, std::move (kf)); } logger *get_logger () const final override diff --git a/gcc/analyzer/known-function-manager.cc b/gcc/analyzer/known-function-manager.cc index 42dfe3af583..7341b068480 100644 --- a/gcc/analyzer/known-function-manager.cc +++ b/gcc/analyzer/known-function-manager.cc @@ -48,11 +48,12 @@ known_function_manager::~known_function_manager () } void -known_function_manager::add (const char *name, known_function *kf) +known_function_manager::add (const char *name, + std::unique_ptr kf) { LOG_FUNC_1 (get_logger (), "registering %s", name); tree id = get_identifier (name); - m_map_id_to_kf.put (id, kf); + m_map_id_to_kf.put (id, kf.release ()); } const known_function * diff --git a/gcc/analyzer/known-function-manager.h b/gcc/analyzer/known-function-manager.h index 2b95b7e2589..daf1bc57855 100644 --- a/gcc/analyzer/known-function-manager.h +++ b/gcc/analyzer/known-function-manager.h @@ -30,7 +30,7 @@ class known_function_manager : public log_user public: known_function_manager (logger *logger); ~known_function_manager (); - void add (const char *name, known_function *kf); + void add (const char *name, std::unique_ptr kf); const known_function *get_by_identifier (tree identifier); const known_function *get_by_fndecl (tree fndecl); diff --git a/gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.c b/gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.c index dfa30c8d61b..92b4dfbd4d0 100644 --- a/gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.c +++ b/gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.c @@ -210,10 +210,11 @@ kernel_analyzer_init_cb (void *gcc_data, void */*user_data*/) LOG_SCOPE (iface->get_logger ()); if (0) inform (input_location, "got here: kernel_analyzer_init_cb"); - iface->register_known_function ("copy_from_user", - new known_function_copy_from_user ()); + iface->register_known_function + ("copy_from_user", + make_unique ()); iface->register_known_function ("copy_to_user", - new known_function_copy_to_user ()); + make_unique ()); } } // namespace ana diff --git a/gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.c b/gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.c index 5c1f3986aa7..e9f607f58fe 100644 --- a/gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.c +++ b/gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.c @@ -175,9 +175,10 @@ known_fn_analyzer_init_cb (void *gcc_data, void */*user_data*/) if (0) inform (input_location, "got here: known_fn_analyzer_init_cb"); iface->register_known_function ("returns_42", - new known_function_returns_42 ()); - iface->register_known_function ("attempt_to_copy", - new known_function_attempt_to_copy ()); + make_unique ()); + iface->register_known_function + ("attempt_to_copy", + make_unique ()); } } // namespace ana