public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r13-3635] analyzer: use std::unique_ptr for known functions
@ 2022-11-03 17:48 David Malcolm
  0 siblings, 0 replies; only message in thread
From: David Malcolm @ 2022-11-03 17:48 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:76dd2c4f2d46f16e8f9a89487e5b3c2b7d4a1369

commit r13-3635-g76dd2c4f2d46f16e8f9a89487e5b3c2b7d4a1369
Author: David Malcolm <dmalcolm@redhat.com>
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 <dmalcolm@redhat.com>

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<known_function>) = 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<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 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<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 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<known_function> 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<known_function_copy_from_user> ());
   iface->register_known_function ("copy_to_user",
-				  new known_function_copy_to_user ());
+				  make_unique<known_function_copy_to_user> ());
 }
 
 } // 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<known_function_returns_42> ());
+  iface->register_known_function
+    ("attempt_to_copy",
+     make_unique<known_function_attempt_to_copy> ());
 }
 
 } // namespace ana

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-11-03 17:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-03 17:48 [gcc r13-3635] analyzer: use std::unique_ptr for known functions David Malcolm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).