aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen Avery <powerboat9.gamer@gmail.com>2023-08-31 11:32:11 -0400
committerArthur Cohen <arthur.cohen@embecosm.com>2024-01-16 19:04:30 +0100
commitfe8bd7af79ed707f7ab6e481580b6a7483cee326 (patch)
tree9c0f6f4b407c5cb31c4a6638fc7c66dba79687f7
parent078158a3b98f7629032ece4033724fbd8709756c (diff)
downloadgcc-fe8bd7af79ed707f7ab6e481580b6a7483cee326.zip
gcc-fe8bd7af79ed707f7ab6e481580b6a7483cee326.tar.gz
gcc-fe8bd7af79ed707f7ab6e481580b6a7483cee326.tar.bz2
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>
-rw-r--r--gcc/rust/rust-backend.h18
-rw-r--r--gcc/rust/rust-gcc.cc9
2 files changed, 8 insertions, 19 deletions
diff --git a/gcc/rust/rust-backend.h b/gcc/rust/rust-backend.h
index 1c81b20..21a9137 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 06bf7da..c3db37f 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;