]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Move function-related methods into base class Backend
authorOwen Avery <powerboat9.gamer@gmail.com>
Thu, 31 Aug 2023 18:39:27 +0000 (14:39 -0400)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 16 Jan 2024 18:04:31 +0000 (19:04 +0100)
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>
gcc/rust/rust-backend.h
gcc/rust/rust-gcc.cc

index 0633d005d872d8e1c50a7742b745ff658ce88223..81fd1304dba809028d743e842a33c9ed02ec13d7 100644 (file)
@@ -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
index 2e3612f45c5d0245d88871ff13d859f70df2b24e..23c2f215771dab678f9a08bcc8f74f0c799991f9 100644 (file)
@@ -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);
 }