[gcc r14-7961] gccrs: Move label-related functions into base class Backend

Arthur Cohen cohenarthur@gcc.gnu.org
Tue Jan 16 18:09:01 GMT 2024


https://gcc.gnu.org/g:fe8bd7af79ed707f7ab6e481580b6a7483cee326

commit r14-7961-gfe8bd7af79ed707f7ab6e481580b6a7483cee326
Author: Owen Avery <powerboat9.gamer@gmail.com>
Date:   Thu Aug 31 11:32:11 2023 -0400

    gccrs: Move label-related functions into base class Backend
    
    gcc/rust/ChangeLog:
    
            * rust-backend.h
            (Backend::label): Make non-virtual.
            (Backend::label_definition_statement): Likewise.
            (Backend::goto_statement): Likewise.
            (Backend::label_address): Likewise.
    
            (Gcc_backend::label): Remove.
            (Gcc_backend::label_definition_statement): Remove.
            (Gcc_backend::goto_statement): Remove.
            (Gcc_backend::label_address): Remove.
            * rust-gcc.cc
            (Gcc_backend::label): Rename to ...
            (Backend::label): ... here.
            (Gcc_backend::label_definition_statement): Rename to ...
            (Backend::label_definition_statement): ... here.
            (Gcc_backend::goto_statement): Rename to ...
            (Backend::goto_statement): ... here.
            (Gcc_backend::label_address): Rename to ...
            (Backend::label_address): ... here.
    
    Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>

Diff:
---
 gcc/rust/rust-backend.h | 18 ++++--------------
 gcc/rust/rust-gcc.cc    |  9 ++++-----
 2 files changed, 8 insertions(+), 19 deletions(-)

diff --git a/gcc/rust/rust-backend.h b/gcc/rust/rust-backend.h
index 1c81b20a870..21a913757d7 100644
--- a/gcc/rust/rust-backend.h
+++ b/gcc/rust/rust-backend.h
@@ -416,20 +416,20 @@ public:
   // Create a new label.  NAME will be empty if this is a label
   // created by the frontend for a loop construct.  The location is
   // where the label is defined.
-  virtual tree label (tree, const std::string &name, location_t) = 0;
+  tree label (tree, const std::string &name, location_t);
 
   // Create a statement which defines a label.  This statement will be
   // put into the codestream at the point where the label should be
   // defined.
-  virtual tree label_definition_statement (tree) = 0;
+  tree label_definition_statement (tree);
 
   // Create a goto statement to a label.
-  virtual tree goto_statement (tree, location_t) = 0;
+  tree goto_statement (tree, location_t);
 
   // Create an expression for the address of a label.  This is used to
   // get the return address of a deferred function which may call
   // recover.
-  virtual tree label_address (tree, location_t) = 0;
+  tree label_address (tree, location_t);
 
   // Functions.
 
@@ -620,16 +620,6 @@ public:
   Bvariable *temporary_variable (tree, tree, tree, tree, bool, location_t,
 				 tree *);
 
-  // Labels.
-
-  tree label (tree, const std::string &name, location_t);
-
-  tree label_definition_statement (tree);
-
-  tree goto_statement (tree, location_t);
-
-  tree label_address (tree, location_t);
-
   // Functions.
 
   tree function (tree fntype, const std::string &name,
diff --git a/gcc/rust/rust-gcc.cc b/gcc/rust/rust-gcc.cc
index 06bf7da246e..c3db37f288a 100644
--- a/gcc/rust/rust-gcc.cc
+++ b/gcc/rust/rust-gcc.cc
@@ -2243,8 +2243,7 @@ Gcc_backend::temporary_variable (tree fndecl, tree bind_tree, tree type_tree,
 // Make a label.
 
 tree
-Gcc_backend::label (tree func_tree, const std::string &name,
-		    location_t location)
+Backend::label (tree func_tree, const std::string &name, location_t location)
 {
   tree decl;
   if (name.empty ())
@@ -2270,7 +2269,7 @@ Gcc_backend::label (tree func_tree, const std::string &name,
 // Make a statement which defines a label.
 
 tree
-Gcc_backend::label_definition_statement (tree label)
+Backend::label_definition_statement (tree label)
 {
   return fold_build1_loc (DECL_SOURCE_LOCATION (label), LABEL_EXPR,
 			  void_type_node, label);
@@ -2279,7 +2278,7 @@ Gcc_backend::label_definition_statement (tree label)
 // Make a goto statement.
 
 tree
-Gcc_backend::goto_statement (tree label, location_t location)
+Backend::goto_statement (tree label, location_t location)
 {
   return fold_build1_loc (location, GOTO_EXPR, void_type_node, label);
 }
@@ -2287,7 +2286,7 @@ Gcc_backend::goto_statement (tree label, location_t location)
 // Get the address of a label.
 
 tree
-Gcc_backend::label_address (tree label, location_t location)
+Backend::label_address (tree label, location_t location)
 {
   TREE_USED (label) = 1;
   TREE_ADDRESSABLE (label) = 1;


More information about the Gcc-cvs mailing list