public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-7901] gccrs: Move Backend::error_variable to Bvariable::error_variable
@ 2024-01-16 18:05 Arthur Cohen
0 siblings, 0 replies; only message in thread
From: Arthur Cohen @ 2024-01-16 18:05 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:77fbe55f8e68a2fbdff00500faec32f85e8c6d74
commit r14-7901-g77fbe55f8e68a2fbdff00500faec32f85e8c6d74
Author: Owen Avery <powerboat9.gamer@gmail.com>
Date: Wed Aug 2 15:51:38 2023 -0400
gccrs: 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>
Diff:
---
gcc/rust/backend/rust-compile-extern.h | 2 +-
gcc/rust/backend/rust-compile-fnparam.cc | 2 +-
gcc/rust/rust-backend.h | 7 -------
gcc/rust/rust-gcc.cc | 16 +++++++++++-----
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 692e4e5fe6c..9fb2086ad2c 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 1072ae0c07a..fb6049f25d5 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 3674591bbd4..e1c22e38a9f 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 673ddaaef1c..5f9dbfe4333 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 1a5c1fa33f0..1f251a3149f 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_;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-01-16 18:05 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-16 18:05 [gcc r14-7901] gccrs: Move Backend::error_variable to Bvariable::error_variable Arthur Cohen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).