https://gcc.gnu.org/g:39356a0993305fb65d04c45c85749df694edefa5
commit r17-2225-g39356a0993305fb65d04c45c85749df694edefa5 Author: Philip Herron <[email protected]> Date: Sat Apr 18 22:23:41 2026 +0100 gccrs: Fix ICE when ident is a lang item gcc/rust/ChangeLog: * ast/rust-ast-collector.cc (TokenCollector::visit): check for lang item Signed-off-by: Philip Herron <[email protected]> Diff: --- gcc/rust/ast/rust-ast-collector.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/rust/ast/rust-ast-collector.cc b/gcc/rust/ast/rust-ast-collector.cc index 12f3e106c8f0..60be5e4475d5 100644 --- a/gcc/rust/ast/rust-ast-collector.cc +++ b/gcc/rust/ast/rust-ast-collector.cc @@ -639,7 +639,10 @@ TokenCollector::visit (TypePathSegmentGeneric &segment) // `<` `>` // | `<` ( GenericArg `,` )* GenericArg `,`? `>` describe_node (std::string ("TypePathSegmentGeneric"), [this, &segment] () { - auto ident_segment = segment.get_ident_segment (); + auto ident_segment + = segment.is_lang_item () + ? PathIdentSegment ("LANG_ITEM", segment.get_locus ()) + : segment.get_ident_segment (); auto id = ident_segment.as_string (); push (Rust::Token::make_identifier (ident_segment.get_locus (), std::move (id)));
