[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