diff options
author | Owen Avery <powerboat9.gamer@gmail.com> | 2023-08-02 15:51:38 -0400 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2023-08-09 09:23:34 +0000 |
commit | 0d678b209df6a6ad6456ced2bd8c9aa0fa547b5f (patch) | |
tree | 2731145383f411fde8244ec0b31934d2a29df688 | |
parent | 09e23335a289de79b8e202b0afdf32caee53dcdb (diff) | |
download | gcc-0d678b209df6a6ad6456ced2bd8c9aa0fa547b5f.zip gcc-0d678b209df6a6ad6456ced2bd8c9aa0fa547b5f.tar.gz gcc-0d678b209df6a6ad6456ced2bd8c9aa0fa547b5f.tar.bz2 |
Move Backend::error_variable to Bvariable::error_variable
gcc/rust/ChangeLog:
* rust-backend.h
(Backend::error_variable): Remove.
(Gcc_backend::error_variable): Move to ...
* rust-gcc.cc
(Bvariable::error_variable): ... here ...
* rust-gcc.h
(Bvariable::error_variable): ... and declare here.
(Gcc_backend::global_variable): Update error_variable call.
(Gcc_backend::local_variable): Likewise.
(Gcc_backend::parameter_variable): Likewise.
(Gcc_backend::static_chain_variable): Likewise.
(Gcc_backend::temporary_variable): Likewise.
* backend/rust-compile-extern.h
(CompileExternItem::visit): Likewise.
* backend/rust-compile-fnparam.cc
(CompileFnParam::CompileFnParam): Likewise.
Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
-rw-r--r-- | gcc/rust/backend/rust-compile-extern.h | 2 | ||||
-rw-r--r-- | gcc/rust/backend/rust-compile-fnparam.cc | 2 | ||||
-rw-r--r-- | gcc/rust/rust-backend.h | 7 | ||||
-rw-r--r-- | gcc/rust/rust-gcc.cc | 16 | ||||
-rw-r--r-- | gcc/rust/rust-gcc.h | 5 |
5 files changed, 18 insertions, 14 deletions
diff --git a/gcc/rust/backend/rust-compile-extern.h b/gcc/rust/backend/rust-compile-extern.h index 54bd410..582cceb 100644 --- a/gcc/rust/backend/rust-compile-extern.h +++ b/gcc/rust/backend/rust-compile-extern.h @@ -48,7 +48,7 @@ public: void visit (HIR::ExternalStaticItem &item) override { // check if its already been compiled - Bvariable *lookup = ctx->get_backend ()->error_variable (); + Bvariable *lookup = Bvariable::error_variable (); if (ctx->lookup_var_decl (item.get_mappings ().get_hirid (), &lookup)) { reference = ctx->get_backend ()->var_expression (lookup, ref_locus); diff --git a/gcc/rust/backend/rust-compile-fnparam.cc b/gcc/rust/backend/rust-compile-fnparam.cc index 48f317f..de0096c 100644 --- a/gcc/rust/backend/rust-compile-fnparam.cc +++ b/gcc/rust/backend/rust-compile-fnparam.cc @@ -27,7 +27,7 @@ namespace Compile { CompileFnParam::CompileFnParam (Context *ctx, tree fndecl, tree decl_type, location_t locus) : HIRCompileBase (ctx), fndecl (fndecl), decl_type (decl_type), locus (locus), - compiled_param (ctx->get_backend ()->error_variable ()) + compiled_param (Bvariable::error_variable ()) {} Bvariable * diff --git a/gcc/rust/rust-backend.h b/gcc/rust/rust-backend.h index 1b35199..621c9fb 100644 --- a/gcc/rust/rust-backend.h +++ b/gcc/rust/rust-backend.h @@ -346,11 +346,6 @@ public: // Variables. - // Create an error variable. This is used for cases which should - // not occur in a correct program, in order to keep the compilation - // going without crashing. - virtual Bvariable *error_variable () = 0; - // Create a global variable. NAME is the package-qualified name of // the variable. ASM_NAME is the encoded identifier for the // variable, incorporating the package, and made safe for the @@ -655,8 +650,6 @@ public: // Variables. - Bvariable *error_variable () { return new Bvariable (error_mark_node); } - Bvariable *global_variable (const std::string &var_name, const std::string &asm_name, tree type, bool is_external, bool is_hidden, diff --git a/gcc/rust/rust-gcc.cc b/gcc/rust/rust-gcc.cc index 42fbe8e..37cbef4 100644 --- a/gcc/rust/rust-gcc.cc +++ b/gcc/rust/rust-gcc.cc @@ -77,6 +77,12 @@ Bvariable::get_tree (location_t location) const return build_fold_indirect_ref_loc (location, t); } +Bvariable * +Bvariable::error_variable () +{ + return new Bvariable (error_mark_node); +} + // This file implements the interface between the Rust frontend proper // and the gcc IR. This implements specific instantiations of // abstract classes defined by the Rust frontend proper. The Rust @@ -2048,7 +2054,7 @@ Gcc_backend::global_variable (const std::string &var_name, bool in_unique_section, location_t location) { if (type_tree == error_mark_node) - return this->error_variable (); + return Bvariable::error_variable (); // The GNU linker does not like dynamic variables with zero size. tree orig_type_tree = type_tree; @@ -2113,7 +2119,7 @@ Gcc_backend::local_variable (tree function, const std::string &name, location_t location) { if (type_tree == error_mark_node) - return this->error_variable (); + return Bvariable::error_variable (); tree decl = build_decl (location, VAR_DECL, get_identifier_from_string (name), type_tree); DECL_CONTEXT (decl) = function; @@ -2134,7 +2140,7 @@ Gcc_backend::parameter_variable (tree function, const std::string &name, tree type_tree, location_t location) { if (type_tree == error_mark_node) - return this->error_variable (); + return Bvariable::error_variable (); tree decl = build_decl (location, PARM_DECL, get_identifier_from_string (name), type_tree); DECL_CONTEXT (decl) = function; @@ -2151,7 +2157,7 @@ Gcc_backend::static_chain_variable (tree fndecl, const std::string &name, tree type_tree, location_t location) { if (type_tree == error_mark_node) - return this->error_variable (); + return Bvariable::error_variable (); tree decl = build_decl (location, PARM_DECL, get_identifier_from_string (name), type_tree); DECL_CONTEXT (decl) = fndecl; @@ -2188,7 +2194,7 @@ Gcc_backend::temporary_variable (tree fndecl, tree bind_tree, tree type_tree, || fndecl == error_mark_node) { *pstatement = error_mark_node; - return this->error_variable (); + return Bvariable::error_variable (); } tree var; diff --git a/gcc/rust/rust-gcc.h b/gcc/rust/rust-gcc.h index 9799ad2..131ec40 100644 --- a/gcc/rust/rust-gcc.h +++ b/gcc/rust/rust-gcc.h @@ -49,6 +49,11 @@ public: // Get the actual decl; tree get_decl () const { return this->t_; } + // Create an error variable. This is used for cases which should + // not occur in a correct program, in order to keep the compilation + // going without crashing. + static Bvariable *error_variable (); + private: tree t_; tree orig_type_; |