From: Owen Avery Date: Thu, 31 Aug 2023 18:39:27 +0000 (-0400) Subject: gccrs: Move function-related methods into base class Backend X-Git-Tag: basepoints/gcc-15~2170 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5728f2bf0a583309178a9fbdcc7187d274326c34;p=thirdparty%2Fgcc.git gccrs: Move function-related methods into base class Backend gcc/rust/ChangeLog: * rust-backend.h (Backend::function): Make non-virtual. (Backend::function_defer_statement): Likewise. (Backend::function_set_parameters): Likewise. (Backend::write_global_definitions): Likewise. (Backend::write_export_data): Likewise. (Gcc_backend::function): Remove. (Gcc_backend::function_defer_statement): Remove. (Gcc_backend::function_set_parameters): Remove. (Gcc_backend::write_global_definitions): Remove. (Gcc_backend::write_export_data): Remove. * rust-gcc.cc (Gcc_backend::function): Rename to ... (Backend::function): ... here. (Gcc_backend::function_defer_statement): Fix a qualified lookup of Backend::label and rename to ... (Backend::function_defer_statement): ... here. (Gcc_backend::function_set_parameters) Rename to ... (Backend::function_set_parameters): ... here. (Gcc_backend::write_global_definitions): Rename to ... (Backend::write_global_definitions): ... here. (Gcc_backend::write_export_data): Rename to ... (Backend::write_export_data): ... here. Signed-off-by: Owen Avery --- diff --git a/gcc/rust/rust-backend.h b/gcc/rust/rust-backend.h index 0633d005d872..81fd1304dba8 100644 --- a/gcc/rust/rust-backend.h +++ b/gcc/rust/rust-backend.h @@ -449,41 +449,35 @@ public: // string, is the name that should be used in the symbol table; this // will be non-empty if a magic extern comment is used. FLAGS is // bit flags described above. - virtual tree function (tree fntype, const std::string &name, - const std::string &asm_name, unsigned int flags, - location_t) - = 0; + tree function (tree fntype, const std::string &name, + const std::string &asm_name, unsigned int flags, location_t); // Create a statement that runs all deferred calls for FUNCTION. This should // be a statement that looks like this in C++: // finish: // try { DEFER_RETURN; } catch { CHECK_DEFER; goto finish; } - virtual tree function_defer_statement (tree function, tree undefer, - tree check_defer, location_t) - = 0; + tree function_defer_statement (tree function, tree undefer, tree check_defer, + location_t); // Record PARAM_VARS as the variables to use for the parameters of FUNCTION. // This will only be called for a function definition. Returns true on // success, false on failure. - virtual bool - function_set_parameters (tree function, - const std::vector ¶m_vars) - = 0; + bool function_set_parameters (tree function, + const std::vector ¶m_vars); // Utility. // Write the definitions for all TYPE_DECLS, CONSTANT_DECLS, // FUNCTION_DECLS, and VARIABLE_DECLS declared globally. - virtual void + void write_global_definitions (const std::vector &type_decls, const std::vector &constant_decls, const std::vector &function_decls, - const std::vector &variable_decls) - = 0; + const std::vector &variable_decls); // Write SIZE bytes of export data from BYTES to the proper // section in the output object file. - virtual void write_export_data (const char *bytes, unsigned int size) = 0; + void write_export_data (const char *bytes, unsigned int size); protected: tree fill_in_fields (tree, const std::vector &); @@ -573,24 +567,6 @@ public: location_t); void block_add_statements (tree, const std::vector &); - - // Functions. - - tree function (tree fntype, const std::string &name, - const std::string &asm_name, unsigned int flags, location_t); - - tree function_defer_statement (tree function, tree undefer, tree defer, - location_t); - - bool function_set_parameters (tree function, - const std::vector &); - - void write_global_definitions (const std::vector &, - const std::vector &, - const std::vector &, - const std::vector &); - - void write_export_data (const char *bytes, unsigned int size); }; #endif // RUST_BACKEND_H diff --git a/gcc/rust/rust-gcc.cc b/gcc/rust/rust-gcc.cc index 2e3612f45c5d..23c2f215771d 100644 --- a/gcc/rust/rust-gcc.cc +++ b/gcc/rust/rust-gcc.cc @@ -2297,9 +2297,9 @@ Backend::label_address (tree label, location_t location) // Declare or define a new function. tree -Gcc_backend::function (tree functype, const std::string &name, - const std::string &asm_name, unsigned int flags, - location_t location) +Backend::function (tree functype, const std::string &name, + const std::string &asm_name, unsigned int flags, + location_t location) { if (functype != error_mark_node) { @@ -2342,8 +2342,8 @@ Gcc_backend::function (tree functype, const std::string &name, // try { UNDEFER; } catch { CHECK_DEFER; goto finish; } tree -Gcc_backend::function_defer_statement (tree function, tree undefer_tree, - tree defer_tree, location_t location) +Backend::function_defer_statement (tree function, tree undefer_tree, + tree defer_tree, location_t location) { if (undefer_tree == error_mark_node || defer_tree == error_mark_node || function == error_mark_node) @@ -2355,7 +2355,7 @@ Gcc_backend::function_defer_statement (tree function, tree undefer_tree, push_cfun (DECL_STRUCT_FUNCTION (function)); tree stmt_list = NULL; - tree label = Gcc_backend::label (function, "", location); + tree label = Backend::label (function, "", location); tree label_def = label_definition_statement (label); append_to_statement_list (label_def, &stmt_list); @@ -2375,8 +2375,8 @@ Gcc_backend::function_defer_statement (tree function, tree undefer_tree, // This will only be called for a function definition. bool -Gcc_backend::function_set_parameters ( - tree function, const std::vector ¶m_vars) +Backend::function_set_parameters (tree function, + const std::vector ¶m_vars) { if (function == error_mark_node) return false; @@ -2400,7 +2400,7 @@ Gcc_backend::function_set_parameters ( // emit early debugging information. void -Gcc_backend::write_global_definitions ( +Backend::write_global_definitions ( const std::vector &type_decls, const std::vector &constant_decls, const std::vector &function_decls, const std::vector &variable_decls) @@ -2471,7 +2471,7 @@ Gcc_backend::write_global_definitions ( } void -Gcc_backend::write_export_data (const char *bytes, unsigned int size) +Backend::write_export_data (const char *bytes, unsigned int size) { rust_write_export_data (bytes, size); }