diff options
author | David Malcolm <dmalcolm@redhat.com> | 2022-11-03 13:47:02 -0400 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2022-11-03 13:47:02 -0400 |
commit | 76dd2c4f2d46f16e8f9a89487e5b3c2b7d4a1369 (patch) | |
tree | 6d581c48f99c8f8b4524687a4dca356d0ff9f3ba /gcc/analyzer | |
parent | accece8c9543e4f3f7bbf24989755dd0453658b7 (diff) | |
download | gcc-76dd2c4f2d46f16e8f9a89487e5b3c2b7d4a1369.zip gcc-76dd2c4f2d46f16e8f9a89487e5b3c2b7d4a1369.tar.gz gcc-76dd2c4f2d46f16e8f9a89487e5b3c2b7d4a1369.tar.bz2 |
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 <dmalcolm@redhat.com>
Diffstat (limited to 'gcc/analyzer')
-rw-r--r-- | gcc/analyzer/analyzer.h | 2 | ||||
-rw-r--r-- | gcc/analyzer/engine.cc | 4 | ||||
-rw-r--r-- | gcc/analyzer/known-function-manager.cc | 5 | ||||
-rw-r--r-- | gcc/analyzer/known-function-manager.h | 2 |
4 files changed, 7 insertions, 6 deletions
diff --git a/gcc/analyzer/analyzer.h b/gcc/analyzer/analyzer.h index d8d3e78..88fdc1d 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<known_function>) = 0; virtual logger *get_logger () const = 0; }; diff --git a/gcc/analyzer/engine.cc b/gcc/analyzer/engine.cc index d770c6f..fe17f8f 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<known_function> 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 42dfe3a..7341b06 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<known_function> 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 2b95b7e..daf1bc5 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<known_function> kf); const known_function *get_by_identifier (tree identifier); const known_function *get_by_fndecl (tree fndecl); |