public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-7969] gccrs: Move function-related methods into base class Backend
@ 2024-01-16 18:09 Arthur Cohen
  0 siblings, 0 replies; only message in thread
From: Arthur Cohen @ 2024-01-16 18:09 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:5728f2bf0a583309178a9fbdcc7187d274326c34

commit r14-7969-g5728f2bf0a583309178a9fbdcc7187d274326c34
Author: Owen Avery <powerboat9.gamer@gmail.com>
Date:   Thu Aug 31 14:39:27 2023 -0400

    gccrs: Move function-related methods into base class Backend
    
    gcc/rust/ChangeLog:
    
            * rust-backend.h
            (Backend::function): Make non-virtual.
            (Backend::function_defer_statement): Likewise.
            (Backend::function_set_parameters): Likewise.
            (Backend::write_global_definitions): Likewise.
            (Backend::write_export_data): Likewise.
    
            (Gcc_backend::function): Remove.
            (Gcc_backend::function_defer_statement): Remove.
            (Gcc_backend::function_set_parameters): Remove.
            (Gcc_backend::write_global_definitions): Remove.
            (Gcc_backend::write_export_data): Remove.
            * rust-gcc.cc
            (Gcc_backend::function): Rename to ...
            (Backend::function): ... here.
            (Gcc_backend::function_defer_statement):
            Fix a qualified lookup of Backend::label and rename to ...
            (Backend::function_defer_statement): ... here.
            (Gcc_backend::function_set_parameters) Rename to ...
            (Backend::function_set_parameters): ... here.
            (Gcc_backend::write_global_definitions): Rename to ...
            (Backend::write_global_definitions): ... here.
            (Gcc_backend::write_export_data): Rename to ...
            (Backend::write_export_data): ... here.
    
    Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>

Diff:
---
 gcc/rust/rust-backend.h | 42 +++++++++---------------------------------
 gcc/rust/rust-gcc.cc    | 20 ++++++++++----------
 2 files changed, 19 insertions(+), 43 deletions(-)

diff --git a/gcc/rust/rust-backend.h b/gcc/rust/rust-backend.h
index 0633d005d87..81fd1304dba 100644
--- a/gcc/rust/rust-backend.h
+++ b/gcc/rust/rust-backend.h
@@ -449,41 +449,35 @@ public:
   // string, is the name that should be used in the symbol table; this
   // will be non-empty if a magic extern comment is used.  FLAGS is
   // bit flags described above.
-  virtual tree function (tree fntype, const std::string &name,
-			 const std::string &asm_name, unsigned int flags,
-			 location_t)
-    = 0;
+  tree function (tree fntype, const std::string &name,
+		 const std::string &asm_name, unsigned int flags, location_t);
 
   // Create a statement that runs all deferred calls for FUNCTION.  This should
   // be a statement that looks like this in C++:
   //   finish:
   //     try { DEFER_RETURN; } catch { CHECK_DEFER; goto finish; }
-  virtual tree function_defer_statement (tree function, tree undefer,
-					 tree check_defer, location_t)
-    = 0;
+  tree function_defer_statement (tree function, tree undefer, tree check_defer,
+				 location_t);
 
   // Record PARAM_VARS as the variables to use for the parameters of FUNCTION.
   // This will only be called for a function definition.  Returns true on
   // success, false on failure.
-  virtual bool
-  function_set_parameters (tree function,
-			   const std::vector<Bvariable *> &param_vars)
-    = 0;
+  bool function_set_parameters (tree function,
+				const std::vector<Bvariable *> &param_vars);
 
   // Utility.
 
   // Write the definitions for all TYPE_DECLS, CONSTANT_DECLS,
   // FUNCTION_DECLS, and VARIABLE_DECLS declared globally.
-  virtual void
+  void
   write_global_definitions (const std::vector<tree> &type_decls,
 			    const std::vector<tree> &constant_decls,
 			    const std::vector<tree> &function_decls,
-			    const std::vector<Bvariable *> &variable_decls)
-    = 0;
+			    const std::vector<Bvariable *> &variable_decls);
 
   // Write SIZE bytes of export data from BYTES to the proper
   // section in the output object file.
-  virtual void write_export_data (const char *bytes, unsigned int size) = 0;
+  void write_export_data (const char *bytes, unsigned int size);
 
 protected:
   tree fill_in_fields (tree, const std::vector<typed_identifier> &);
@@ -573,24 +567,6 @@ public:
 	      location_t);
 
   void block_add_statements (tree, const std::vector<tree> &);
-
-  // Functions.
-
-  tree function (tree fntype, const std::string &name,
-		 const std::string &asm_name, unsigned int flags, location_t);
-
-  tree function_defer_statement (tree function, tree undefer, tree defer,
-				 location_t);
-
-  bool function_set_parameters (tree function,
-				const std::vector<Bvariable *> &);
-
-  void write_global_definitions (const std::vector<tree> &,
-				 const std::vector<tree> &,
-				 const std::vector<tree> &,
-				 const std::vector<Bvariable *> &);
-
-  void write_export_data (const char *bytes, unsigned int size);
 };
 
 #endif // RUST_BACKEND_H
diff --git a/gcc/rust/rust-gcc.cc b/gcc/rust/rust-gcc.cc
index 2e3612f45c5..23c2f215771 100644
--- a/gcc/rust/rust-gcc.cc
+++ b/gcc/rust/rust-gcc.cc
@@ -2297,9 +2297,9 @@ Backend::label_address (tree label, location_t location)
 // Declare or define a new function.
 
 tree
-Gcc_backend::function (tree functype, const std::string &name,
-		       const std::string &asm_name, unsigned int flags,
-		       location_t location)
+Backend::function (tree functype, const std::string &name,
+		   const std::string &asm_name, unsigned int flags,
+		   location_t location)
 {
   if (functype != error_mark_node)
     {
@@ -2342,8 +2342,8 @@ Gcc_backend::function (tree functype, const std::string &name,
 //     try { UNDEFER; } catch { CHECK_DEFER; goto finish; }
 
 tree
-Gcc_backend::function_defer_statement (tree function, tree undefer_tree,
-				       tree defer_tree, location_t location)
+Backend::function_defer_statement (tree function, tree undefer_tree,
+				   tree defer_tree, location_t location)
 {
   if (undefer_tree == error_mark_node || defer_tree == error_mark_node
       || function == error_mark_node)
@@ -2355,7 +2355,7 @@ Gcc_backend::function_defer_statement (tree function, tree undefer_tree,
     push_cfun (DECL_STRUCT_FUNCTION (function));
 
   tree stmt_list = NULL;
-  tree label = Gcc_backend::label (function, "", location);
+  tree label = Backend::label (function, "", location);
   tree label_def = label_definition_statement (label);
   append_to_statement_list (label_def, &stmt_list);
 
@@ -2375,8 +2375,8 @@ Gcc_backend::function_defer_statement (tree function, tree undefer_tree,
 // This will only be called for a function definition.
 
 bool
-Gcc_backend::function_set_parameters (
-  tree function, const std::vector<Bvariable *> &param_vars)
+Backend::function_set_parameters (tree function,
+				  const std::vector<Bvariable *> &param_vars)
 {
   if (function == error_mark_node)
     return false;
@@ -2400,7 +2400,7 @@ Gcc_backend::function_set_parameters (
 // emit early debugging information.
 
 void
-Gcc_backend::write_global_definitions (
+Backend::write_global_definitions (
   const std::vector<tree> &type_decls, const std::vector<tree> &constant_decls,
   const std::vector<tree> &function_decls,
   const std::vector<Bvariable *> &variable_decls)
@@ -2471,7 +2471,7 @@ Gcc_backend::write_global_definitions (
 }
 
 void
-Gcc_backend::write_export_data (const char *bytes, unsigned int size)
+Backend::write_export_data (const char *bytes, unsigned int size)
 {
   rust_write_export_data (bytes, size);
 }

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

only message in thread, other threads:[~2024-01-16 18:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-16 18:09 [gcc r14-7969] gccrs: Move function-related methods into base class Backend Arthur Cohen

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).