https://gcc.gnu.org/g:0780ff1fc5fe9e71e5510fc60bb845c58ab36880
commit r16-6354-g0780ff1fc5fe9e71e5510fc60bb845c58ab36880 Author: Owen Avery <[email protected]> Date: Sun Dec 14 16:37:31 2025 -0500 gccrs: Make some general improvements gcc/rust/ChangeLog: * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Visit the generic parameters of TraitItemType. * expand/rust-expand-visitor.h (is_derive): Remove defunct function declaration. * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Remove unnecessary copy. * resolve/rust-name-resolver.cc (Resolver::Resolver): Skip generating builtins for the old resolver. * util/rust-hir-map.cc (Mappings::get_next_node_id): Detect node id exhaustion. * util/rust-mapping-common.h (MAX_NODEID): Add macro definition. Signed-off-by: Owen Avery <[email protected]> Diff: --- gcc/rust/ast/rust-ast-visitor.cc | 2 ++ gcc/rust/expand/rust-expand-visitor.h | 5 ----- gcc/rust/hir/rust-ast-lower-item.cc | 2 +- gcc/rust/resolve/rust-name-resolver.cc | 4 +--- gcc/rust/util/rust-hir-map.cc | 2 ++ gcc/rust/util/rust-mapping-common.h | 1 + 6 files changed, 7 insertions(+), 9 deletions(-) diff --git a/gcc/rust/ast/rust-ast-visitor.cc b/gcc/rust/ast/rust-ast-visitor.cc index afdd2b19dac4..a9e2f053a011 100644 --- a/gcc/rust/ast/rust-ast-visitor.cc +++ b/gcc/rust/ast/rust-ast-visitor.cc @@ -1029,6 +1029,8 @@ void DefaultASTVisitor::visit (AST::TraitItemType &item) { visit_outer_attrs (item); + for (auto &generic : item.get_generic_params ()) + visit (generic); for (auto &bound : item.get_type_param_bounds ()) visit (bound); } diff --git a/gcc/rust/expand/rust-expand-visitor.h b/gcc/rust/expand/rust-expand-visitor.h index b79eb663c6c3..0f92268eefea 100644 --- a/gcc/rust/expand/rust-expand-visitor.h +++ b/gcc/rust/expand/rust-expand-visitor.h @@ -27,11 +27,6 @@ namespace Rust { -/** - * Whether or not an attribute is a derive attribute - */ -bool is_derive (AST::Attribute &attr); - /** * Whether or not an attribute is builtin */ diff --git a/gcc/rust/hir/rust-ast-lower-item.cc b/gcc/rust/hir/rust-ast-lower-item.cc index 81815ff22eab..369f77e70e69 100644 --- a/gcc/rust/hir/rust-ast-lower-item.cc +++ b/gcc/rust/hir/rust-ast-lower-item.cc @@ -451,7 +451,7 @@ ASTLoweringItem::visit (AST::Function &function) continue; } - auto param = static_cast<AST::FunctionParam &> (*p); + auto ¶m = static_cast<AST::FunctionParam &> (*p); auto translated_pattern = std::unique_ptr<HIR::Pattern> ( ASTLoweringPattern::translate (param.get_pattern ())); diff --git a/gcc/rust/resolve/rust-name-resolver.cc b/gcc/rust/resolve/rust-name-resolver.cc index dddaa0793010..8625a0e4d28c 100644 --- a/gcc/rust/resolve/rust-name-resolver.cc +++ b/gcc/rust/resolve/rust-name-resolver.cc @@ -282,9 +282,7 @@ Resolver::Resolver () label_scope (Scope (mappings.get_current_crate ())), macro_scope (Scope (mappings.get_current_crate ())), global_type_node_id (UNKNOWN_NODEID), unit_ty_node_id (UNKNOWN_NODEID) -{ - generate_builtins (); -} +{} Resolver * Resolver::get () diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc index a6d323e36144..0012969eb121 100644 --- a/gcc/rust/util/rust-hir-map.cc +++ b/gcc/rust/util/rust-hir-map.cc @@ -201,6 +201,8 @@ NodeId Mappings::get_next_node_id () { auto it = nodeIdIter; + if (UNLIKELY (it > MAX_NODEID)) + rust_fatal_error (UNKNOWN_LOCATION, "out of node ids"); nodeIdIter++; return it; } diff --git a/gcc/rust/util/rust-mapping-common.h b/gcc/rust/util/rust-mapping-common.h index 3cc5a7506c39..bd9fd733d548 100644 --- a/gcc/rust/util/rust-mapping-common.h +++ b/gcc/rust/util/rust-mapping-common.h @@ -63,6 +63,7 @@ struct DefId #define UNKNOWN_CRATENUM ((uint32_t) (UINT32_MAX)) #define UNKNOWN_NODEID ((uint32_t) (UINT32_MAX)) +#define MAX_NODEID (UNKNOWN_NODEID - 1) #define UNKNOWN_HIRID ((uint32_t) (UINT32_MAX)) #define UNKNOWN_LOCAL_DEFID ((uint32_t) (0)) #define UNKNOWN_DEFID (DefId{0, 0})
