[gcc r14-8169] Daily bump.

GCC Administrator gccadmin@gcc.gnu.org
Wed Jan 17 00:21:51 GMT 2024


https://gcc.gnu.org/g:1a17797496f72982c1c802725704a9aaf01218b5

commit r14-8169-g1a17797496f72982c1c802725704a9aaf01218b5
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Jan 17 00:21:29 2024 +0000

    Daily bump.

Diff:
---
 ChangeLog               |   10 +
 gcc/ChangeLog           |   69 +
 gcc/DATESTAMP           |    2 +-
 gcc/c-family/ChangeLog  |    6 +
 gcc/cp/ChangeLog        |   37 +
 gcc/rust/ChangeLog      | 8325 +++++++++++++++++++++++++++++++++++++++++++++++
 gcc/testsuite/ChangeLog | 1699 ++++++++++
 libgrust/ChangeLog      |  676 ++++
 8 files changed, 10823 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 644bea96c4c..9845720a24f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Makefile.def: Add a dependency to libgrust for all-gcc.
+	* Makefile.in: Regenerate the file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Makefile.def: Add libgrust target to bootstrap.
+	* Makefile.in: Regenerate.
+
 2024-01-15  Andrew Pinski  <quic_apinski@quicinc.com>
 
 	* MAINTAINERS (DCO): Add myself.
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9fd99c034d9..01c8b019298 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,72 @@
+2024-01-16  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+
+	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU.
+	* config/aarch64/aarch64-tune.md: Regenerated.
+	* doc/invoke.texi (-mcpu): Add cobalt-100 core.
+
+2024-01-16  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+
+	PR target/112573
+	* config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate
+	badly formed CONST expressions.
+
+2024-01-16  Daniel Cederman  <cederman@gaisler.com>
+
+	* config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty
+
+2024-01-16  Daniel Cederman  <cederman@gaisler.com>
+
+	* config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic
+	* config/sparc/sync.md (membar_storeload): Turn into named insn
+	and add GR712RC errata workaround.
+	(membar_v8): Add GR712RC errata workaround.
+
+2024-01-16  Andreas Larsson  <andreas@gaisler.com>
+
+	* config/sparc/sync.md (*membar_storeload_leon3): Remove
+	(*membar_storeload): Enable for LEON
+
+2024-01-16  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/113372
+	PR middle-end/90348
+	PR middle-end/110115
+	PR middle-end/111422
+	* cfgexpand.cc (add_scope_conflicts_2): New function.
+	(add_scope_conflicts_1): Use it.
+
+2024-01-16  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
+	(avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
+	* doc/avr-mmcu.texi: Regenerate.
+
+2024-01-16  Feng Xue  <fxue@os.amperecomputing.com>
+
+	PR tree-optimization/113091
+	* tree-vect-slp.cc (vect_slp_has_scalar_use): New function.
+	(vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check
+	scalar use with new function.
+	(vect_bb_slp_mark_live_stmts): New function as entry to existing
+	overriden functions with same name.
+	(vect_slp_analyze_operations): Call new entry function to mark
+	live statements.
+
+2024-01-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+
+	PR target/113404
+	* config/riscv/riscv.cc (riscv_override_options_internal): Report sorry
+	for RVV in big-endian mode.
+
+2024-01-16  Yanzhang Wang  <yanzhang.wang@intel.com>
+
+	* config/riscv/riscv.cc (riscv_arg_has_vector): Delete.
+	(riscv_pass_in_vector_p): Delete.
+	(riscv_init_cumulative_args): Delete the checking.
+	(riscv_get_arg_info): Delete the checking.
+	(riscv_function_value): Delete the checking.
+	* config/riscv/riscv.h: Delete the member for checking.
+
 2024-01-15  Georg-Johann Lay  <avr@gjlay.de>
 
 	* doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 9952a5e3bfc..6e69a00502c 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240116
+20240117
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 47019bd346b..6038d47f9e9 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,9 @@
+2024-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/113397
+	* c-ada-spec.cc (check_type_name_conflict): Add guard for the
+	presence of DECL_NAME on a TYPE_DECL.
+
 2024-01-11  Julian Brown  <julian@codesourcery.com>
 
 	* c-pretty-print.cc (c_pretty_printer::postfix_expression,
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 49e93ecc0c4..9daad1ffb00 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,40 @@
+2024-01-16  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	PR c++/113292
+	* decl2.cc (get_tls_wrapper_fn): Set DECL_CONTEXT.
+	(c_parse_final_cleanups): Suppress warning for no definition of
+	TLS wrapper functions in header modules.
+	* module.cc (trees_out::lang_decl_vals): Write wrapped variable
+	for TLS wrapper functions.
+	(trees_in::lang_decl_vals): Read it.
+	(trees_out::decl_value): Write TLS model for thread-local vars.
+	(trees_in::decl_value): Read it for new decls. Remember to emit
+	definitions of TLS wrapper functions later.
+
+2024-01-16  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	* name-lookup.h (enum scope_kind): Add 'sk_count'.
+	* name-lookup.cc (cp_binding_level_descriptor): Add missing
+	scope kinds. Add assertion that the list is up to date. Fix
+	handling of explicit_spec_p.
+
+2024-01-16  Marek Polacek  <polacek@redhat.com>
+
+	* decl.cc (grokdeclarator) <case cdk_function>: Tweak diagnostic
+	messages.
+
+2024-01-16  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/113340
+	* decl.cc (grokdeclarator) <case cdk_function>: Clear
+	is_xobj_member_function in case of an error.
+
+2024-01-16  waffl3x  <waffl3x@protonmail.com>
+
+	PR c++/113307
+	* parser.cc (cp_parser_parameter_declaration): Reject packs
+	on xobj params.
+
 2024-01-15  Marek Polacek  <polacek@redhat.com>
 
 	PR c++/110065
diff --git a/gcc/rust/ChangeLog b/gcc/rust/ChangeLog
index 65a4b1c4103..c093556817c 100644
--- a/gcc/rust/ChangeLog
+++ b/gcc/rust/ChangeLog
@@ -1,3 +1,8328 @@
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/tree/rust-hir-pattern.h
+	(TupleStructItems::ItemType::RANGE): Rename to...
+	(TupleStructItems::ItemType::RANGED): ...here.
+	(TupleStructItems::ItemType::NO_RANGE): Rename to...
+	(TupleStructItems::ItemType::MULTIPLE): ...here.
+	(TuplePatternItems::TuplePatternItemType): Rename to...
+	(TuplePatternItems::ItemType): ...here.
+	: Handle renames.
+	* backend/rust-compile-pattern.cc: Likewise.
+	* typecheck/rust-hir-type-check-pattern.cc: Likewise.
+	* checks/errors/borrowck/rust-bir-builder-pattern.h: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lex/rust-lex.cc (Lexer::parse_decimal_int_or_float): Remove
+	additional zero after empty floating point.
+	* parse/rust-parse-impl.h (Parser::left_denotation): Handle float with
+	empty floating point.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* backend/rust-compile-expr.cc (CompileExpr::generate_closure_function):
+	Fix reference to node.
+	* backend/rust-mangle.cc (struct V0Path): Modified to accept closures.
+	(v0_crate_path): Modified to accept closures.
+	(v0_closure): New function to mangle closures.
+	(v0_path): Modified to accept closures
+	* util/rust-mapping-common.h (UNKNOWN_NODEID): Change to UINT32_MAX.
+	(UNKNOWN_HIRID): Change to UINT32_MAX.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Move from here...
+	* ast/rust-ast-visitor.h: ... to here.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Move to header
+	file.
+	(TokenCollector::visit_items_joined_by_separator): Likewise.
+	(TokenCollector::visit_as_line): Likewise.
+	(TokenCollector::visit_items_as_lines): Likewise.
+	(TokenCollector::visit_items_as_block): Likewise.
+	* ast/rust-ast-collector.h: Add implementation.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Add visitor for
+	VariadicParam and remove Self parameter visitor from Function visit.
+	* expand/rust-cfg-strip.cc (CfgStrip::maybe_strip_self_param): Remove
+	function.
+	(CfgStrip::maybe_strip_trait_method_decl): Remove self parameter visit.
+	(CfgStrip::maybe_strip_function_params): Handle new function
+	parameters.
+	(CfgStrip::visit): Handle VariadicParam, SelfParam and FunctionParam.
+	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_self_param):
+	Remove function.
+	(ExpandVisitor::expand_trait_method_decl): Do not visit self parameter.
+	(ExpandVisitor::visit): Add visit for VariadicParam, FunctionParam and
+	SelfParam.
+	(ExpandVisitor::expand_function_params): Visit parameters instead.
+	* expand/rust-expand-visitor.h: Update function prototypes.
+	* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Update visit
+	with new parameters.
+	(ResolveTraitItems::visit): Likewise.
+	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+	Update visit functions with the new visitor functions for VariadicParam
+	SelfParam and FunctionParam.
+	* resolve/rust-early-name-resolver.h: Update function prototypes.
+	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Update visitor
+	according to the new function parameter structures.
+	* ast/rust-ast-visitor.h: Update prototypes and add visitor virtual
+	functions for SelfParam, FunctionParam and VariadicParam.
+	* ast/rust-ast.cc (Function::Function): Move constructor in
+	implementation instead of header.
+	(Function::operator=): Likewise.
+	(Function::as_string): Update function with pointer dereference.
+	(VariadicParam::as_string): Likewise.
+	(TraitFunctionDecl::as_string): Likewise.
+	(TraitMethodDecl::as_string): Likewise.
+	(FunctionParam::accept_vis): Add function for visitor.
+	(SelfParam::accept_vis): Likewise.
+	(VariadicParam::accept_vis): Likewise.
+	(TraitItemFunc::TraitItemFunc): Move constructor to implementation
+	file.
+	(TraitItemFunc::operator=): Likewise.
+	(TraitItemMethod::TraitItemMethod): Likewise.
+	(TraitItemMethod::operator=): Likewise.
+	* ast/rust-item.h (class Function): Remove self optional member.
+	(class TraitMethodDecl): Likewise.
+	(class TraitFunctionDecl): Likewise.
+	(class Param): Add abstract parameter class.
+	(class SelfParam): Inherit from Param and remove parameter common
+	members.
+	(class FunctionParam): Likewise.
+	(class VariadicParam): Likewise.
+	(struct Visibility): Move structure declaration.
+	(class VisItem):  Likewise.
+	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
+	a self parameter check during AST validation.
+	* checks/errors/rust-ast-validation.h: Add function prototype.
+	* expand/rust-derive-clone.cc (DeriveClone::clone_fn): Update function
+	constructor.
+	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_self): Rework
+	function for the new parameters.
+	(ASTLoweringBase::visit): Add visit functions for VariadicParam,
+	FunctionParam and SelfParam.
+	* hir/rust-ast-lower-base.h: Update function prototypes.
+	* parse/rust-parse-impl.h (Parser::parse_function): Update function
+	according to new function representation.
+	(Parser::parse_function_param): Return vector of abstract param instead
+	of FunctionParam.
+	(Parser::parse_method): Update according to new representation.
+	(Parser::parse_trait_item): Likewise.
+	(Parser::parse_self_param): Error out with
+	self pointers and prevent the lexer from eating regular function
+	parameters. Update return type.
+	* parse/rust-parse.h: Update function return types.
+	* ast/rust-ast-collector.h: Add VariadicParam visit prototype.
+	* ast/rust-ast.h (struct Visibility): Move struct declaration.
+	(class VisItem): Likewise.
+	* ast/rust-expr.h: Update included files.
+	* checks/errors/rust-feature-gate.h: Add visitor functions for
+	SelfParam, FunctionParam and VariadicParam.
+	* expand/rust-cfg-strip.h: Update function prototypes.
+	* expand/rust-derive.h: Likewise.
+	* hir/rust-ast-lower-implitem.h: Handle special arguments.
+	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
+	* metadata/rust-export-metadata.cc (ExportContext::emit_function):
+	Likewise.
+	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Add visitor
+	functions.
+	* resolve/rust-ast-resolve-base.h: Update prototypes.
+	* resolve/rust-ast-resolve-stmt.h: Handle new parameter kind.
+	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Likewise.
+	* resolve/rust-default-resolver.h: Update prototype.
+	* util/rust-attributes.cc (AttributeChecker::visit): Add visitor
+	functions for SelfParam and VariadicParam.
+	* util/rust-attributes.h: Add visit prototypes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
+	check for additional named argument as well as variadic argument's
+	position.
+	* checks/errors/rust-ast-validation.h: Add visit function prototype for
+	external functions.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-visitor.cc (ContextualASTVisitor::visit): Push the new
+	trait context when visiting a trait.
+	* ast/rust-ast-visitor.h: Add visit function prototype and TRAIT
+	context.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Change
+	reported error location to the lifetime location.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Check if there is
+	a label before visit.
+	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Emit an
+	error when a label has a forbidden name.
+	* checks/errors/rust-ast-validation.h: Add function prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-expr.h (class BreakExpr): Change Lifetime to LoopLabel.
+	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Lower lifetime
+	inside the label instead.
+	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Resolve the
+	inner lifetime.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lex/rust-lex.cc (Lexer::parse_raw_identifier): Use const value.
+	* parse/rust-parse-impl.h (Parser::parse_simple_path_segment):
+	Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lex/rust-lex.cc (RS_TOKEN): Remove local map.
+	(RS_TOKEN_KEYWORD): Likewise.
+	(Lexer::classify_keyword): Change call to utils.
+	* util/rust-keyword-values.cc (get_keywords): Add init function.
+	(RS_TOKEN_KEYWORD): Call to X macro.
+	* util/rust-keyword-values.h: Change from set to a map.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* checks/errors/rust-ast-validation.cc (RS_TOKEN): Remove locale set.
+	(RS_TOKEN_KEYWORD): Likewise.
+	(ASTValidation::visit): Change keyword set call to the one from utils.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Make-lang.in: Add rust-keyword-values.cc to the list.
+	* util/rust-keyword-values.cc: New file.
+	* util/rust-keyword-values.h: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-attribute-values.h (RUST_ATTRIBUTES_VALUE_H): Remove old
+	header guard.
+	(RUST_ATTRIBUTE_VALUES_H): Add new one.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* checks/errors/rust-ast-validation.cc (RS_TOKEN): Add keyword set.
+	(RS_TOKEN_KEYWORD): Likewise.
+	(ASTValidation::visit): Add validation on lifetime visit.
+	* checks/errors/rust-ast-validation.h: Add function prototype.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-item.h
+	(class Method): Remove.
+	(Function::self_param): New.
+	(Function::has_self_param): New.
+	(Function::Function): Initialize self_param.
+	(Function::operator=): Likewise.
+	(Function::get_self_param): New.
+	* ast/rust-ast.cc
+	(Method::as_string): Remove.
+	(Method::accept_vis): Remove.
+	* ast/rust-ast-collector.cc
+	(TokenCollector::visit):
+	Remove AST::Method visitor, handle self_param in AST::Function visitor.
+	* ast/rust-ast-collector.h
+	(TokenCollector::visit): Remove AST::Method visitor.
+	* ast/rust-ast-full-decls.h (class Method): Remove.
+	* ast/rust-ast-visitor.h
+	(ASTVisitor::visit): Remove AST::Method visitor.
+	(DefaultASTVisitor::visit): Likewise.
+	* ast/rust-ast-visitor.cc
+	(DefaultASTVisitor::visit):
+	Remove AST::Method visitor, handle self_param in AST::Function visitor.
+	* checks/errors/rust-feature-gate.cc
+	(FeatureGate::visit): Remove AST::Method visitor.
+	* checks/errors/rust-feature-gate.h
+	(FeatureGate::visit): Likewise..
+	* expand/rust-cfg-strip.cc
+	(CfgStrip::visit):
+	Remove AST::Method visitor, handle self_param in AST::Function visitor.
+	* expand/rust-cfg-strip.h
+	(CfgStrip::visit): Remove AST::Method visitor.
+	* expand/rust-derive-clone.cc
+	(DeriveClone::clone_fn): Return AST::Function instead of AST::Method.
+	* expand/rust-derive.h (DeriveVisitor::visit): Remove AST::Method visitor.
+	* expand/rust-expand-visitor.cc
+	(ExpandVisitor::visit):
+	Remove AST::Method visitor, handle self_param in AST::Function visitor.
+	* expand/rust-expand-visitor.h:
+	(ExpandVisitor::visit): Remove AST::Method visitor.
+	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
+	* hir/rust-ast-lower-base.h (ASTLoweringBase::visit): Likewise.
+	* hir/rust-ast-lower-implitem.h
+	(ASTLowerImplItem::visit):
+	Remove AST::Method visitor, handle self_param in AST::Function visitor.
+	* parse/rust-parse-impl.h: Include optional.h.
+	(Parser::parse_function): Adjust AST::Function construction.
+	(Parser::parse_inherent_impl_function_or_method):
+	Construct AST::Function instead of AST::Method,
+	adjust AST::Function construction.
+	(Parser::parse_trait_impl_function_or_method): Likewise.
+	(Parser::parse_method):
+	Return std::unique_ptr<AST::Function> instead of AST::Method.
+	* parse/rust-parse.h
+	(Parser::parse_method): Likewise.
+	* resolve/rust-ast-resolve-base.cc
+	(ResolverBase::visit): Remove AST::Method visitor.
+	* resolve/rust-ast-resolve-base.h
+	(ResolverBase::visit): Likewise.
+	* resolve/rust-ast-resolve-implitem.h
+	(ResolveToplevelImplItem::visit): Likewise.
+	* resolve/rust-ast-resolve-item.cc
+	(ResolveItem::visit): Remove AST::Method visitor,
+	handle self_param in AST::Function visitor.
+	* resolve/rust-ast-resolve-item.h
+	(ResolveItem::visit): Remove AST::Method visitor.
+	* resolve/rust-default-resolver.cc
+	(DefaultResolver::visit): Remove AST::Method visitor.
+	* resolve/rust-default-resolver.h
+	(DefaultResolver::visit): Likewise.
+	* resolve/rust-early-name-resolver.cc
+	(EarlyNameResolver::visit): Remove AST::Method visitor,
+	handle self_param in AST::Function visitor.
+	* resolve/rust-early-name-resolver.h
+	(EarlyNameResolver::visit): Remove AST::Method visitor.
+	* resolve/rust-toplevel-name-resolver-2.0.cc
+	(TopLevel::visit): Likewise.
+	* resolve/rust-toplevel-name-resolver-2.0.h
+	(TopLevel::visit): Likewise.
+	* util/rust-attributes.cc
+	(AttributeChecker::visit): Likewise.
+	* util/rust-attributes.h
+	(AttributeChecker::visit): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_named_function_param): Add
+	new parsing ability.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.cc (ExternalFunctionItem::as_string): Adapt as_string
+	function to the new ast representation.
+	(NamedFunctionParam::as_string): Likewise.
+	* ast/rust-item.h: Add a function to test whether a FunctionParam has
+	a name pattern.
+	* expand/rust-cfg-strip.cc (CfgStrip::visit): Adapt cfg strip visitor
+	for the new variadic arguments.
+	* hir/rust-ast-lower-extern.h: Adapt lowering to the new variadic
+	function representation.
+	* metadata/rust-export-metadata.cc (ExportContext::emit_function):
+	Change call to constructor.
+	* parse/rust-parse-impl.h (Parser::parse_named_function_param): Change
+	NamedFunctionParam parsing to accomodate new variadic representation.
+	(Parser::parse_external_item): Change external item parsing to use the
+	new NamedFunctionParam variadics.
+	* parse/rust-parse.h: Add new parsing function prototypes.
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Rework token
+	collection to take into account variadic parameters.
+	* ast/rust-ast-visitor.cc: Likewise.
+	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Change function
+	bound to avoid getting the type of a variadic parameter.
+	* resolve/rust-ast-resolve-item.cc (ResolveExternItem::visit):
+	Likewise.
+	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+	Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-item.h (class NamedFunctionParam): Add variadic boolean and
+	another constructor.
+	* hir/rust-ast-lower-extern.h: Avoid last parameter when variadic.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-item.h: Add a getter to check if a given function is
+	variadic.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_function_param): Parse
+	variadic functions.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-item.h (class FunctionParam): Add some informations to
+	function parameters in order to be able to store variadic argument as
+	a function parameter.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Adapt
+	the call to the new visit functions.
+	(ASTValidation::check): Launch the parent class visitor root function.
+	* checks/errors/rust-ast-validation.h (class ASTValidation): Inherit
+	from the contextual visitor.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-visitor.cc (ContextualASTVisitor::visit): Add multiple
+	context saving calls.
+	* ast/rust-ast-visitor.h (class DefaultASTVisitor): Make visit
+	functions virtual.
+	(class ContextualASTVisitor): Add a stack like container for the
+	current context chain.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Make-lang.in: Add the new visitor object file.
+	* ast/rust-ast-visitor.h (class DefaultASTVisitor): Create the default
+	visitor class.
+	* ast/rust-ast.h: Add a new reference getter for visitor pattern.
+	* ast/rust-ast-visitor.cc: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h: Add some missing mutable reference getters.
+	* ast/rust-expr.h: Likewise.
+	* ast/rust-item.h: Likewise.
+	* ast/rust-path.h: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Check for presence
+	of a type and use the default value instead of the type.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* checks/errors/rust-ast-validation.cc (ASTValidation::check): Launch
+	check over the whole given crate.
+	(ASTValidation::visit): Implement visitor for some members of the ast.
+	* checks/errors/rust-ast-validation.h: Update some prototype according
+	to implemented visitor functions. Also add a context tracker.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust-session-manager.cc (Session::compile_crate): Add call to ast
+	validation.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lang.opt: Add the new compile options and update the enum values.
+	* rust-session-manager.h (struct CompileOptions): Add the new steps to
+	the enumeration.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Make-lang.in: Add the new object file the list.
+	* checks/errors/rust-ast-validation.cc: New file.
+	* checks/errors/rust-ast-validation.h: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-cfg-strip.cc (CfgStrip::visit): Add expr value check.
+	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise.
+	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+	Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h: Move implementation from here...
+	* ast/rust-ast.cc (SingleASTNode::SingleASTNode): ...to here.
+	(SingleASTNode::operator=): ...and here...
+	(SingleASTNode::accept_vis): ...and here...
+	(SingleASTNode::is_error): ...and here...
+	(SingleASTNode::as_string): ...also here.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h: Add override specifier.
+	* ast/rust-item.h: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-macro-invoc-lexer.cc (MacroInvocLexer::split_current_token):
+	Add implementation for multiple token split.
+	* expand/rust-macro-invoc-lexer.h: Add function prototype.
+	* expand/rust-proc-macro-invoc-lexer.cc (ProcMacroInvocLexer::split_current_token):
+	Add implementation for 2+ token split for procedural macros.
+	* expand/rust-proc-macro-invoc-lexer.h: Add function prototype.
+	* lex/rust-lex.cc (Lexer::split_current_token): Add function to split a
+	token in multiple other tokens.
+	* lex/rust-lex.h: Add function prototype for split_current_token.
+	* parse/rust-parse-impl.h (Parser::left_denotation): Handle float tuple
+	index identified as a float literal.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* hir/rust-hir-dump.cc (Dump::visit): Remove obsolete member.
+	* hir/tree/rust-hir-expr.h (class BorrowExpr): Remove obsolete member.
+	* hir/tree/rust-hir.cc (BorrowExpr::as_string): Remove obsolete member.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Fix typo.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-compile-expr.cc
+	(patterns_mergeable): Remove.
+	(struct PatternMerge): Remove.
+	(sort_tuple_patterns): Remove.
+	(simplify_tuple_match): Remove.
+	(CompileExpr::visit): Modify compilation of MatchExpr.
+	* backend/rust-compile-pattern.cc
+	(CompilePatternCaseLabelExpr::visit): Replace with...
+	(CompilePatternCheckExpr::visit): ...this.
+	* backend/rust-compile-pattern.h
+	(class CompilePatternCaseLabelExpr): Replace with...
+	(class CompilePatternCheckExpr): ...this.
+	* backend/rust-compile-type.cc
+	(TyTyResolveCompile::get_implicit_enumeral_node_type):
+	Make enumeral type equivalent to isize.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* backend/rust-compile-base.cc (get_attributes): Add documentation for
+	indices 3 and 4.
+	(get_trait_name): Add documentation for index 1.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Make-lang.in: Add gcc/rust/backend/rust-compile-proc-macro.cc to the
+	list of file to compile.
+	* backend/rust-compile.cc (attribute_array): Move to
+	rust-compile-proc-macro.cc
+	(derive_proc_macro): Likewise.
+	(bang_proc_macro): Likewise.
+	(attribute_proc_macro): Likewise.
+	(proc_macro_payload): Likewise.
+	(proc_macro): Likewise.
+	(proc_macro_buffer): Likewise.
+	(entrypoint): Likewise.
+	(proc_macro_array): Likewise.
+	(CompileCrate::add_proc_macro_symbols): Likewise.
+	* backend/rust-compile-proc-macro.cc: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* backend/rust-compile.cc (proc_macro_buffer): Update type builder with
+	array length information.
+	(proc_macro_array): Update type initializer with array length
+	information.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* backend/rust-compile.cc (build_attribute_array): Renamed from...
+	(attribute_array): ...to attribute array.
+	(build_derive_proc_macro): Likewise from...
+	(derive_proc_macro): ... to derive_proc_macro.
+	(build_bang_proc_macro): Likewise from...
+	(bang_proc_macro): ...to bang_proc_macro.
+	(build_attribute_proc_macro): Likewise from...
+	(attribute_proc_macro): ... to attribute_proc_macro.
+	(build_proc_macro_payload): Likewise from...
+	(proc_macro_payload): to proc_macro_payload.
+	(build_proc_macro): Likewise from...
+	(proc_macro): ...to proc_macro.
+	(build_proc_macro_buffer): Likewise from...
+	(proc_macro_buffer): ... to proc_macro_buffer.
+	(build_entrypoint): Likewise from...
+	(entrypoint): ...to entrypoint.
+	(init_derive_proc_macro): Renamed to it's shorter counterpart.
+	(init_attribute_proc_macro): Likewise.
+	(init_bang_proc_macro): Likewise.
+	(init_proc_macro): Likewise.
+	(initialize_proc_macro_array): Likewise.
+	(proc_macro_array): Likewise.
+	(CompileCrate::add_proc_macro_symbols): Update function calls.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* backend/rust-compile-base.h: Make static function address_expression
+	public.
+	* backend/rust-compile.cc (CompileCrate::add_proc_macro_symbols): Add
+	new global variable in export function.
+	(build_bang_proc_macro): Add a function to build the bang proc macro
+	structure type.
+	(build_proc_macro): Add a function to build the proc macro structure
+	type.
+	(build_proc_macro_payload): Add a function to build the proc macro
+	union used in proc macro structures.
+	(init_derive_proc_macro): Add a function to initialize custom derive
+	proc macros.
+	(init_attribute_proc_macro): Add a function to initialize attribute
+	proc macros.
+	(init_bang_proc_macro): Add a function to initialize bang proc macros.
+	(init_proc_macro): Add a function to initialize proc macro structures.
+	(initialize_proc_macro_array): Add a function to initialize the proc
+	macro buffer array.
+	(CompileCrate::add_proc_macro_symbols): Add call to the new functions
+	to correctly initialize proc macros as well as their entrypoint.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-proc-macro.cc (CustomDeriveProcMacro::CustomDeriveProcMacro):
+	Remove constant string declaration.
+	(load_macros_array): Add call to the new generation function.
+	(generate_proc_macro_decls_symbol): Add a new function to generate the
+	entrypoint symbol name from the stable crate id.
+	(PROC_MACRO_DECLS_FMT_ARGS):
+	New macro to keep formats arguments in sync between each call.
+	* expand/rust-proc-macro.h (generate_proc_macro_decls_symbol): Add
+	function prototype.
+	* rust-system.h: Include <iomanip>.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* backend/rust-compile.cc (build_attribute_array): Add a function to
+	build the attribute array type.
+	(build_derive_proc_macro): Add a function to build the derive proc
+	macro type.
+	(build_bang_proc_macro): Add a function to build the bang proc macro
+	type.
+	(build_attribute_proc_macro): Add a function to build the attribute
+	proc macro type.
+	(build_proc_macro): Add a function to build the proc macro tagged union
+	type.
+	(build_proc_macro_buffer): Add a function to build the proc macro
+	buffer type.
+	(build_entrypoint): Add a function to build the proc macro entrypoint
+	type.
+	* backend/rust-compile.h: Add function prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* backend/rust-compile-context.h: Add getters.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl):
+	Make the function non static in order to be able to access the
+	compile context. Also add the whole proc macro infomrmation
+	collection.
+	(get_attributes): Add a function to retrieve the different
+	attributes from a derive procedural macro definition attribute.
+	(get_trait_name): Add a function to retrieve the trait name from
+	a derive procedural macro definition attribute.
+	* backend/rust-compile-base.h: Add function prototypes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* backend/rust-compile-base.cc (HIRCompileBase::setup_abi_options):
+	Reformat uncorrectly formatted comments.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* backend/rust-compile-context.h (struct CustomDeriveInfo): Add
+	new derive procedural macro metadata information holder for
+	mappings.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h: Add const getter.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* backend/rust-compile-base.cc (handle_proc_macro_common): Add
+	new attribute "gccrs_proc_macro" to all procedural macro
+	functions.
+	(get_abi): Add a function to retrieve the correct ABI depending
+	on wether the function is a proc macro or not.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl):
+	Add proc macro handlers dispatch.
+	(handle_proc_macro_common): Add a function for common behavior
+	between all kinds of proc macros.
+	* backend/rust-compile-base.h: Add function prototypes.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::setup_loop): Move.
+	(ExprStmtBuilder::get_label_ctx): Move.
+	(ExprStmtBuilder::get_unnamed_loop_ctx): Moved.
+	(ExprStmtBuilder::visit): BIR improvements.
+	* checks/errors/borrowck/rust-bir-builder-expr-stmt.h: Refactor.
+	* checks/errors/borrowck/rust-bir-builder-internal.h (class LifetimeResolver):
+	Refactor.
+	(struct BuilderContext): Move.Refactor.
+	(optional_from_ptr): Map on null ptr.
+	* checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h (class LazyBooleanExprBuilder):
+	Refactor.
+	* checks/errors/borrowck/rust-bir-builder-pattern.h: Refactor.
+	* checks/errors/borrowck/rust-bir-builder-struct.h (class StructBuilder): Refactor.
+	* checks/errors/borrowck/rust-bir-builder.h: Refactor.
+	* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Refactor.
+	(Dump::visit): Refactor.
+	(Dump::visit_place): Refactor.
+	(Dump::visit_move_place): Refactor.
+	(Dump::visit_lifetime): Refactor.
+	* checks/errors/borrowck/rust-bir-dump.h: Refactor.
+	* checks/errors/borrowck/rust-bir-place.h: Refactor.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* checks/errors/borrowck/dev-notes.md: New file.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* checks/errors/borrowck/bir-design-notes.md: New file.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): Use goto.
+	* checks/errors/borrowck/rust-bir-builder-internal.h: Explicit goto.
+	* checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h: Explicit goto.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): Continue.
+	(ExprStmtBuilder::setup_loop): Continue.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* checks/errors/borrowck/rust-bir-dump.cc (simplify_cfg): Detech infinite loops.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): Push ctx.
+	(ExprStmtBuilder::setup_loop): Common loop infractructure setup.
+	* checks/errors/borrowck/rust-bir-builder-expr-stmt.h: Loop ctx.
+	* checks/errors/borrowck/rust-bir-builder-internal.h (struct BuilderContext): Loop ctx.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Improve jumps dump.
+	(Dump::visit): Improve jumps dump.
+	* checks/errors/borrowck/rust-bir-dump.h (class Dump): Improve jumps dump.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* checks/errors/borrowck/rust-bir-dump.cc (simplify_cfg): Simplify cfg logic.
+	(Dump::go): Run simplify cfg.
+	* checks/errors/borrowck/rust-bir-dump.h: Option to simplify cfg.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Use new print.
+	(print_comma_separated): Comma separation print.
+	(Dump::visit): Use new print.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* Make-lang.in: Build BIR dump.
+	* checks/errors/borrowck/rust-borrow-checker.cc (mkdir_wrapped): Cross-platform mkdir.
+	(dump_function_bir): Save dump to file.
+	(BorrowChecker::go): Run dump during borrowck.
+	* checks/errors/borrowck/rust-bir-dump.cc: New file.
+	* checks/errors/borrowck/rust-bir-dump.h: New file.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* Make-lang.in: Compile BIR expr visitor.
+	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go): Use BIR builder.
+	* rust-session-manager.cc (Session::compile_crate): Run borrow checker.
+	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc: New file.
+	* checks/errors/borrowck/rust-bir-builder-expr-stmt.h: New file.
+	* checks/errors/borrowck/rust-bir-builder-internal.h: New file.
+	* checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h: New file.
+	* checks/errors/borrowck/rust-bir-builder-pattern.h: New file.
+	* checks/errors/borrowck/rust-bir-builder-struct.h: New file.
+	* checks/errors/borrowck/rust-bir-builder.h: New file.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* checks/errors/borrowck/rust-borrow-checker.cc: Include to compile new code.
+	* checks/errors/borrowck/rust-bir-place.h: New file.
+	* checks/errors/borrowck/rust-bir-visitor.h: New file.
+	* checks/errors/borrowck/rust-bir.h: New file.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* lang.opt: CLI flag.
+	* rust-session-manager.cc (Session::compile_crate): Guard execution.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::BorrowChecker): Opt dump.
+	(BorrowChecker::go): Opt dump.
+	* checks/errors/borrowck/rust-borrow-checker.h (class BorrowChecker): Opt dump.
+	* lang.opt: Add compile until borrowcheck.
+	* rust-session-manager.cc (Session::enable_dump): Add BIR.
+	(Session::compile_crate): Handle new options.
+	* rust-session-manager.h (struct CompileOptions): Add BIR.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* Make-lang.in: Build borrowck.
+	* checks/errors/borrowck/rust-borrow-checker.cc: New file.
+	* checks/errors/borrowck/rust-borrow-checker.h: New file.
+	* checks/errors/borrowck/rust-function-collector.h: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-pattern.h: Add override modifier to overriding methods.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-item.h: Add a new constructor for const with no value
+	expression.
+	* parse/rust-parse-impl.h (Parser::parse_const_item): Allow const with
+	no expression value.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* hir/tree/rust-hir-path.h: Avoid copy in getter.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* backend/rust-compile-expr.cc (CompileExpr::visit): Rename method.
+	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Rename method.
+	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Rename method.
+	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Rename method.
+	* hir/rust-hir-dump.cc (Dump::visit): Rename method.
+	* hir/tree/rust-hir-expr.h: Rename method.
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Rename method.
+	* typecheck/rust-tyty.h: Rename method.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* backend/rust-compile-base.cc: Rename method.
+	* backend/rust-compile-expr.cc (sort_tuple_patterns): Rename method.
+	* backend/rust-compile-pattern.cc (CompilePatternCaseLabelExpr::visit): Rename method.
+	(CompilePatternBindings::visit): Rename method.
+	(CompilePatternLet::visit): Rename method.
+	* backend/rust-compile-stmt.cc (CompileStmt::visit): Rename method.
+	* backend/rust-compile-var-decl.h: Rename method.
+	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::translate): Rename method.
+	* hir/rust-hir-dump.cc (Dump::visit): Rename method.
+	* hir/tree/rust-hir-path.h: Rename method.
+	* hir/tree/rust-hir-pattern.h: Rename method.
+	* hir/tree/rust-hir.h: Rename method.
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::Resolve): Rename method.
+	(TypeCheckPattern::visit): Rename method.
+	(ClosureParamInfer::visit): Rename method.
+	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Rename method.
+	* util/rust-hir-map.cc (Mappings::insert_hir_pattern): Rename method.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* hir/tree/rust-hir-expr.h: Add getter for name.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Implement for tuple pat.
+	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit): Implement for tupple pat.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* hir/tree/rust-hir-path.h: Avoid copy in getter.
+	* hir/tree/rust-hir-pattern.h: Avoid copy in getter.
+	* hir/tree/rust-hir.h: Avoid copy in getter.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* resolve/rust-ast-resolve-implitem.h
+	(ResolveToplevelImplItem::go): Take AssociatedItem as parameter.
+	(ResolveTopLevelTraitItems::go): Likewise.
+	* resolve/rust-ast-resolve-item.cc
+	(ResolveTraitItems::go): Likewise.
+	(ResolveItem::resolve_impl_item): Likewise.
+	(ResolveImplItems::go): Likewise.
+	* resolve/rust-ast-resolve-item.h
+	(ResolveTraitItems::go): Likewise.
+	(ResolveItem::resolve_impl_item): Likewise.
+	(ResolveImplItems::go): Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/rust-ast-lower-implitem.h
+	(ASTLoweringImplItem::translate): Take AssociatedItem as parameter.
+	(ASTLoweringTraitItem::translate): Likewise.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* backend/rust-compile-expr.cc (CompileExpr::visit): Bail on labelled block.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Add loop ctx.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Resolve using loop logic.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* hir/rust-ast-lower.cc (ASTLoweringBlock::visit): Call loop lowering and add it to constr.
+	* hir/tree/rust-hir-expr.h (class LoopLabel): Move before BlockExpr and add to BlockExpr.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* ast/rust-ast-builder.cc (AstBuilder::block): Add label arg to constructor call.
+	* ast/rust-expr.h (class LoopLabel): Move before BlockExpr.
+	(class BlockExpr): Add LoopLabel member.
+	* expand/rust-derive-clone.cc (DeriveClone::clone_fn): Add label arg to constructor call.
+	* parse/rust-parse-impl.h (Parser::parse_block_expr): Add label parameter.
+	(Parser::parse_labelled_loop_expr): Add label arg to constructor call.
+	* parse/rust-parse.h: Add label arg to constructor call.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-ast.h
+	(class AssociatedItem):
+	New, based on TraitItem, InherentImplItem, and TraitImplItem classes.
+	(class TraitItem): Inherit from AssociatedItem.
+	(class InherentImplItem): Likewise.
+	(class TraitImplItem): Likewise.
+	* ast/rust-item.h
+	(class Method): Update cloning functions.
+	(class Function): Likewise.
+	(class TypeAlias): Likewise.
+	(class ConstantItem): Likewise.
+	(class TraitItemFunc): Likewise.
+	(class TraitItemMethod): Likewise.
+	(class TraitItemConst): Likewise.
+	(class TraitItemType): Likewise.
+	* ast/rust-macro.h
+	(class MacroInvocation): Likewise.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* backend/rust-mangle.cc (v0_identifier): Fix broken encoding.
+	(v0_scope_path): Modify paramter.
+	(v0_path): Fix namespace for modules.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_closure_expr_pratt): Fix
+	closure parsing function to handle consecutive parameter lists.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-macro.h: Add PATH fragment to follow set restrictions.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::is_macro_rules_def): Add a function
+	that checks tokens given by the lexer represents an accurate macro
+	definition. This will reduce code duplication.
+	(Parser::parse_item): Replace condition with call to new checking
+	function.
+	(Parser::parse_stmt): Likewise.
+	* parse/rust-parse.h: Add function prototype for is_macro_rules_def.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_expr): Fix range from expr.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_item): Relax constraints
+	around default identifier at item scope to accept "default" macros.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_path_expr_segment): Accept
+	left shift tokens in order to let generic parsing function split the
+	token.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-ast.h
+	(Pattern::get_pattern_node_id): Rename to...
+	(Pattern::get_node_id): ...here.
+	* ast/rust-macro.h
+	(MacroInvocation::get_pattern_node_id): Rename to...
+	(MacroInvocation::get_node_id): ...here.
+	* ast/rust-path.h
+	(PathInExpression::get_pattern_node_id): Remove.
+	(QualifiedPathInExpression::get_pattern_node_id): Remove.
+	* ast/rust-pattern.h
+	(LiteralPattern::get_pattern_node_id): Remove.
+	(IdentifierPattern::get_pattern_node_id): Remove.
+	(WildcardPattern::get_pattern_node_id): Remove.
+	(RestPattern::get_pattern_node_id): Rename to...
+	(RestPattern::get_node_id): ...here.
+	(RangePattern::get_pattern_node_id): Remove.
+	(ReferencePattern::get_pattern_node_id): Remove.
+	(StructPattern::get_pattern_node_id): Remove.
+	(TupleStructPattern::get_pattern_node_id): Remove.
+	(TuplePattern::get_pattern_node_id): Remove.
+	(GroupedPattern::get_pattern_node_id): Remove.
+	(SlicePattern::get_pattern_node_id): Remove.
+	(AltPattern::get_pattern_node_id): Remove.
+	* resolve/rust-early-name-resolver.cc
+	(EarlyNameResolver::visit):
+	Use get_node_id instead of get_pattern_node_id.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_expr): Add comma delimiter.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_visibility): Relax constraints
+	over public visibility return condition in order to accept pub unit
+	types.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* typecheck/rust-tyty.cc (BaseType::is_unit): Refactor.
+	(BaseType::satisfies_bound): Refactor.
+	(BaseType::get_root): Refactor.
+	(BaseType::destructure): Refactor.
+	(BaseType::monomorphized_clone): Refactor.
+	(BaseType::is_concrete): Refactor.
+	(InferType::InferType): Refactor.
+	(InferType::clone): Refactor.
+	(InferType::apply_primitive_type_hint): Refactor.
+	(StructFieldType::is_equal): Refactor.
+	(ADTType::is_equal): Refactor.
+	(handle_substitions): Refactor.
+	(ADTType::handle_substitions): Refactor.
+	(TupleType::TupleType): Refactor.
+	(TupleType::is_equal): Refactor.
+	(TupleType::handle_substitions): Refactor.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* typecheck/rust-tyty.cc (InferType::InferType): Use static constant for kind information.
+	(ErrorType::ErrorType): Use static constant for kind information.
+	(TupleType::TupleType): Use static constant for kind information.
+	(BoolType::BoolType): Use static constant for kind information.
+	(IntType::IntType): Use static constant for kind information.
+	(UintType::UintType): Use static constant for kind information.
+	(FloatType::FloatType): Use static constant for kind information.
+	(USizeType::USizeType): Use static constant for kind information.
+	(ISizeType::ISizeType): Use static constant for kind information.
+	(CharType::CharType): Use static constant for kind information.
+	(ReferenceType::ReferenceType): Use static constant for kind information.
+	(PointerType::PointerType): Use static constant for kind information.
+	(ParamType::ParamType): Use static constant for kind information.
+	(StrType::StrType): Use static constant for kind information.
+	(NeverType::NeverType): Use static constant for kind information.
+	(PlaceholderType::PlaceholderType): Use static constant for kind information.
+	* typecheck/rust-tyty.h: Add static kind information to all TyTy classes.
+	Create safe cast and check methods.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_type_param_bound): Add missing
+	case for lifetime switch.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lex/rust-token.cc (Token::as_string): Update function to output scope
+	resolution tokens correctly.
+	* parse/rust-parse-impl.h (Parser::parse_generic_param): Change call to
+	as_string.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* backend/rust-compile-context.h: Modify declaration.
+	* backend/rust-mangle.cc (struct V0Path): New struct.
+	(v0_path): New function.
+	(legacy_mangle_name): Take Context as argument.
+	(v0_numeric_prefix): Fix type strings.
+	(v0_complex_type_prefix): New function.
+	(v0_add_integer_62): Deleted
+	(v0_integer_62): New function.
+	(v0_add_opt_integer_62): Deleted.
+	(v0_opt_integer_62): New function.
+	(v0_add_disambiguator): Deleted.
+	(v0_disambiguator): New function.
+	(v0_type_prefix): Support more types.
+	(v0_generic_args): New function.
+	(v0_add_identifier): Deleted.
+	(v0_identifier): New function.
+	(v0_type_path): New function.
+	(v0_function_path): New function.
+	(v0_scope_path): New function.
+	(v0_crate_path): New function.
+	(v0_inherent_or_trait_impl_path): New function.
+	(v0_mangle_item): Use v0_path.
+	(Mangler::mangle_item): Take Context as argument.
+	* backend/rust-mangle.h (class Context): Add forward declaration.
+	* hir/tree/rust-hir-item.h: Fix include.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/tree/rust-hir-pattern.h
+	(TupleStructItems::clone_tuple_struct_items_impl): Rename to...
+	(TupleStructItems::clone_tuple_items_impl): ...here.
+	(TupleStructItemsNoRange::clone_tuple_struct_items_impl): Rename to...
+	(TupleStructItemsNoRange::clone_tuple_items_impl): ...here.
+	(TupleStructItemsRange::clone_tuple_struct_items_impl): Rename to...
+	(TupleStructItemsRange::clone_tuple_items_impl): ...here.
+	(TuplePatternItems::clone_tuple_pattern_items_impl): Rename to...
+	(TuplePatternItems::clone_tuple_items_impl): ...here.
+	(TuplePatternItemsMultiple::clone_tuple_pattern_items_impl): Rename to...
+	(TuplePatternItemsMultiple::clone_tuple_items_impl): ...here.
+	(TuplePatternItemsRanged::clone_tuple_pattern_items_impl): Rename to...
+	(TuplePatternItemsRanged::clone_tuple_items_impl): ...here.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/tree/rust-hir-pattern.h
+	(TuplePatternItems::get_pattern_type): Rename to...
+	(TuplePatternItems::get_item_type): ...here.
+	(TuplePatternItemsMultiple::get_pattern_type): Rename to...
+	(TuplePatternItemsMultiple::get_item_type): ...here.
+	(TuplePatternItemsRanged::get_pattern_type): Rename to...
+	(TuplePatternItemsRanged::get_item_type): ...here.
+	* backend/rust-compile-expr.cc: Adjust calls to renamed methods.
+	* backend/rust-compile-pattern.cc: Likewise.
+	* typecheck/rust-hir-type-check-pattern.cc: Likewise.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* backend/rust-compile-expr.cc (CompileExpr::visit): Merge 2 if clauses.
+	* backend/rust-compile-extern.h: Fix typo in comment.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* parse/rust-parse-impl.h: Add missing token consumption
+
+2024-01-16  Mohammed Rizan Farooqui  <rizanfarooqui@gmail.com>
+
+	* expand/rust-macro-builtins.cc (MacroBuiltin::include_str_handler): Comment removed
+	(MacroBuiltin::env_handler): Comment removed
+	(MacroBuiltin::cfg_handler): Comment removed
+	(MacroBuiltin::line_handler): Comment removed
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* backend/rust-compile.cc (HIRCompileBase::coercion_site1): Fix wrong cast
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust-session-manager.cc (Session::expansion): Add early break on
+	error.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* util/rust-canonical-path.h: Add new segment kind for inherent impl.
+	* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Use it.
+	* resolve/rust-ast-resolve-toplevel.h: Use it.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-expr.h: Fix spelling of "doesn't".
+	* backend/rust-compile-expr.cc: Fix spelling of "accessors".
+	* backend/rust-compile-implitem.h: Fix spelling of "normal".
+	* backend/rust-constexpr.cc: Fix spelling of "actual".
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* hir/rust-hir-dump.cc (Dump::debug): New.
+	(debug): New.
+	* hir/rust-hir-dump.h (debug): New.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* Make-lang.in: fixup formatting
+	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): remove old check
+	* rust-session-manager.cc (Session::compile_crate): call new lint
+	* resolve/rust-ast-verify-assignee.h: Removed.
+	* checks/errors/rust-readonly-check.cc: New file.
+	* checks/errors/rust-readonly-check.h: New file.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
+	Added ErrorCode & more fixit hints.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-block.h: remove HIR::ForLoopExpr
+	* backend/rust-compile-expr.h: likewise
+	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): likewise
+	* checks/errors/privacy/rust-privacy-reporter.h: likewise
+	* checks/errors/rust-const-checker.cc (ConstChecker::visit): likewise
+	* checks/errors/rust-const-checker.h: likewise
+	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): likewise
+	* checks/errors/rust-unsafe-checker.h: likewise
+	* checks/lints/rust-lint-marklive.h: likewise
+	* hir/rust-ast-lower.cc (ASTLoweringExprWithBlock::visit): likewise
+	* hir/rust-hir-dump.cc (Dump::visit): likewise
+	* hir/rust-hir-dump.h: likewise
+	* hir/tree/rust-hir-expr.h (class ForLoopExpr): likewise
+	* hir/tree/rust-hir-full-decls.h (class ForLoopExpr): likewise
+	* hir/tree/rust-hir-visitor.h: likewise
+	* hir/tree/rust-hir.cc (ForLoopExpr::as_string): likewise
+	(ForLoopExpr::accept_vis): likewise
+	* typecheck/rust-hir-type-check-expr.h: likewise
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* backend/rust-compile-expr.cc (CompileExpr::visit): Fix typo in varIadic.
+	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Likewise.
+	* rust-backend.h (function_type_varadic): Rename into ...
+	(function_type_variadic): ... this.
+	* rust-gcc.cc (function_type_varadic): Rename into ...
+	(function_type_variadic): ... this.
+	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Likewise.
+	* typecheck/rust-tyty.h (is_varadic): Renamed into ...
+	(is_variadic): ... this.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* backend/rust-compile-base.cc (HIRCompileBase::compile_function):
+	Fix typo in substitutions.
+	(HIRCompileBase::resolve_method_address): Likewise.
+	* backend/rust-compile-extern.h (CompileExternItem::visit):
+	Likewise.
+	* backend/rust-compile-implitem.cc (CompileTraitItem::visit):
+	Likewise.
+	* backend/rust-compile-intrinsic.cc (maybe_override_ctx):
+	Likewise.
+	* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
+	* backend/rust-compile-resolve-path.cc
+	(HIRCompileBase::query_compile): Likewise.
+	* typecheck/rust-coercion.cc (TypeCoercionRules::do_coercion):
+	Likewise.
+	* typecheck/rust-hir-type-check-item.cc
+	(TypeCheckItem::ResolveImplBlockSelfWithInference): Likewise.
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit):
+	Likewise.
+	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
+	Likewise.
+	* typecheck/rust-tyty.cc (BaseType::has_subsititions_defined):
+	Renamed into ...
+	(BaseType::has_substitutions_defined): ... this.
+	(ADTType::is_equal): Fix typo in substitutions.
+	(handle_substitions): Likewise.
+	(FnType::is_equal): Likewise.
+	(FnType::handle_substitions): Likewise.
+	* typecheck/rust-tyty.h (has_subsititions_defined): Renamed into
+	...
+	(has_substitutions_defined): ... this.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-compile-intrinsic.cc
+	(get_identifier): Add declaration.
+	(assume_handler): New.
+	(generic_intrinsics): Add assume_handler entry.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-gcc.cc
+	(Backend::wchar_type): Store static wchar tree.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-backend.h
+	(complex_type): Remove.
+	(complex_constant_expression): Remove.
+	(real_part_expression): Remove.
+	(imag_part_expression): Remove.
+	(complex_expression): Remove.
+	* rust-gcc.cc
+	(complex_type): Remove.
+	(complex_constant_expression): Remove.
+	(real_part_expression): Remove.
+	(imag_part_expression): Remove.
+	(complex_expression): Remove.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-gcc.cc
+	(namespace Backend):
+	Use namespace definition instead of qualified names.
+
+2024-01-16  liushuyu  <liushuyu011@gmail.com>
+
+	* backend/rust-compile-intrinsic.cc: add `copy`
+	intrinsics and make `copy_nonoverlapping` handler more generic
+
+2024-01-16  liushuyu  <liushuyu011@gmail.com>
+
+	* backend/rust-builtins.cc: add `expect` builtin definition.
+	* backend/rust-compile-intrinsic.cc: add `likely` and `unlikely`
+	intrinsics handler.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust_error_codes.def: Moved to...
+	* rust-error-codes.def: ...here...
+	* rust-diagnostics.h: ...and update references.
+
+2024-01-16  Guillaume Gomez  <guillaume1.gomez@gmail.com>
+
+	* backend/rust-compile-intrinsic.cc: Simplify `make_unsigned_long_tree`
+	* rust-backend.h: Remove `integer_constant_expression`
+	* rust-gcc.cc: Remove `integer_constant_expression`
+
+2024-01-16  Dave Evans  <dave@dmetwo.org>
+
+	* backend/rust-compile-pattern.cc (CompilePatternCaseLabelExpr::visit):
+	Add AltPattern visitor function
+	* backend/rust-compile-pattern.h:
+	Update CompilePatternCaseLabelExpr::visit(AltPattern&).
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+	Update AltPattern visitor
+
+2024-01-16  Guillaume Gomez  <guillaume1.gomez@gmail.com>
+
+	* backend/rust-compile-intrinsic.cc: Remove unused argument
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+	Added new error message, rich location and error code.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-backend.h
+	(class Backend): Convert to ...
+	(namespace Backend): ... namespace.
+	* rust-gcc.cc
+	(Backend::Backend): Rename to ...
+	(Backend::init): ... here.
+	(rust_get_backend): Remove.
+	* rust-session-manager.cc
+	(rust_get_backend): Remove.
+	(Session::init): Use Backend::init instead of rust_get_backend.
+	(Session::compile_crate):
+	Initialize Context without pointer to Backend.
+	* rust-session-manager.h
+	(Session::backend): Remove.
+	* backend/rust-compile-context.cc
+	(Context::Context): Remove pointer to Backend.
+	* backend/rust-compile-context.h
+	(class Context): Remove pointer to Backend, update function calls.
+	* backend/rust-compile-base.cc: Update function calls.
+	* backend/rust-compile-block.cc: Likewise.
+	* backend/rust-compile-expr.cc: Likewise.
+	* backend/rust-compile-extern.h: Likewise.
+	* backend/rust-compile-fnparam.cc: Likewise.
+	* backend/rust-compile-intrinsic.cc: Likewise.
+	* backend/rust-compile-item.cc: Likewise.
+	* backend/rust-compile-pattern.cc: Likewise.
+	* backend/rust-compile-resolve-path.cc: Likewise.
+	* backend/rust-compile-type.cc: Likewise.
+	* backend/rust-compile-var-decl.h: Likewise.
+	* backend/rust-compile.cc: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.cc (Attribute::check_cfg_predicate): Change raw
+	string to constexpr call.
+	(Attribute::separate_cfg_attrs): Likewise.
+	* backend/rust-compile-base.cc (should_mangle_item): Likewise.
+	(HIRCompileBase::setup_fndecl): Likewise.
+	(HIRCompileBase::handle_cold_attribute_on_fndecl): Likewise.
+	* checks/errors/privacy/rust-privacy-reporter.cc (find_proc_macro_attribute):
+	Likewise.
+	* checks/errors/rust-unsafe-checker.cc (check_target_attr):
+	Likewise.
+	* expand/rust-cfg-strip.cc (fails_cfg): Likewise.
+	(fails_cfg_with_expand): Likewise.
+	(expand_cfg_attrs): Likewise.
+	* expand/rust-macro-builtins.cc: Likewise.
+	* hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_outer_attributes): Likewise.
+	(ASTLoweringBase::lower_macro_definition): Likewise.
+	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
+	* parse/rust-parse-impl.h (Parser::parse_doc_comment): Likewise.
+	* parse/rust-parse.cc (extract_module_path): Likewise.
+	* resolve/rust-early-name-resolver.cc (is_macro_use_module):
+	Likewise.
+	(EarlyNameResolver::visit): Likewise.
+	* resolve/rust-toplevel-name-resolver-2.0.cc (is_macro_export):
+	Likwise.
+	* rust-session-manager.cc (Session::injection): Likewise.
+	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options): Likewise.
+	* util/rust-attributes.cc (is_proc_macro_type): Likewise.
+	(AttributeChecker::check_attribute): Likewise.
+	(AttributeChecker::visit): Likewise.
+	* util/rust-hir-map.cc (Mappings::insert_macro_def): Likewise.
+	* util/rust-attribute-values.h: New file.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-backend.h
+	(Backend::Backend): New.
+	(Backend::~Backend): Remove.
+	(class Gcc_backend): Remove.
+	* rust-gcc.cc
+	(Gcc_backend::Gcc_backend): Rename to ...
+	(Backend::Backend): ... here.
+	(rust_get_backend): Construct Backend instead of Gcc_backend.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-proc-macro.cc (tokenstream_from_string): Change
+	linemap null pointer to the current linemap.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
+	Add proc macro definition insertion.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-hir-map.cc (Mappings::insert_derive_proc_macro_def):
+	Change the function body to fetch the node id from the macro
+	parameter.
+	(Mappings::insert_bang_proc_macro_def): Likewise.
+	(Mappings::insert_attribute_proc_macro_def): Likewise.
+	* util/rust-hir-map.h: Update the function's prototype by
+	removing the node id from the list of arguments.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
+	Add proc macro handle retrieval for attribute and derive proc macros.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-hir-map.cc (Mappings::lookup_derive_proc_macro_def):
+	Update function to accomodate new signature.
+	(Mappings::lookup_bang_proc_macro_def): Likewise.
+	(Mappings::lookup_attribute_proc_macro_def): Likewise.
+	* util/rust-hir-map.h: Update function signatures.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-macro-expand.h (struct MacroExpander): Update
+	lookup function prototypes.
+	* util/rust-hir-map.cc (Mappings::lookup_derive_proc_macro_invocation):
+	Update lookup function according to new signature.
+	(Mappings::lookup_bang_proc_macro_invocation): Likewise.
+	(Mappings::lookup_attribute_proc_macro_invocation): Likewise.
+	* util/rust-hir-map.h: Update function prototypes.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-backend.h
+	(Backend::write_export_data): Remove.
+	* rust-gcc.cc
+	(Backend::write_export_data): Remove.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-backend.h
+	(Backend::real_part_expression): Make non-virtual.
+	(Backend::imag_part_expression): Likewise.
+	(Backend::complex_expression): Likewise.
+	(Backend::convert_expression): Likewise.
+	(Backend::struct_field_expression): Likewise.
+	(Backend::compound_expression): Likewise.
+	(Backend::conditional_expression): Likewise.
+	(Backend::negation_expression): Likewise.
+	(Backend::arithmetic_or_logical_expression): Likewise.
+	(Backend::arithmetic_or_logical_expression_checked): Likewise.
+	(Backend::comparison_expression): Likewise.
+	(Backend::lazy_boolean_expression): Likewise.
+	(Backend::constructor_expression): Likewise.
+	(Backend::array_constructor_expression): Likewise.
+	(Backend::array_initializer): Likewise.
+	(Backend::array_index_expression): Likewise.
+	(Backend::call_expression): Likewise.
+	(Gcc_backend::real_part_expression): Remove.
+	(Gcc_backend::imag_part_expression): Remove.
+	(Gcc_backend::complex_expression): Remove.
+	(Gcc_backend::convert_expression): Remove.
+	(Gcc_backend::struct_field_expression): Remove.
+	(Gcc_backend::compound_expression): Remove.
+	(Gcc_backend::conditional_expression): Remove.
+	(Gcc_backend::negation_expression): Remove.
+	(Gcc_backend::arithmetic_or_logical_expression): Remove.
+	(Gcc_backend::arithmetic_or_logical_expression_checked): Remove.
+	(Gcc_backend::comparison_expression): Remove.
+	(Gcc_backend::lazy_boolean_expression): Remove.
+	(Gcc_backend::constructor_expression): Remove.
+	(Gcc_backend::array_constructor_expression): Remove.
+	(Gcc_backend::array_initializer): Remove.
+	(Gcc_backend::array_index_expression): Remove.
+	(Gcc_backend::call_expression): Remove.
+	* rust-gcc.cc
+	(Gcc_backend::real_part_expression): Rename to ...
+	(Backend::real_part_expression): ... here.
+	(Gcc_backend::imag_part_expression): Rename to ...
+	(Backend::imag_part_expression): ... here.
+	(Gcc_backend::complex_expression): Rename to ...
+	(Backend::complex_expression): ... here.
+	(Gcc_backend::convert_expression): Rename to ...
+	(Backend::convert_expression): ... here.
+	(Gcc_backend::struct_field_expression): Rename to ...
+	(Backend::struct_field_expression): ... here.
+	(Gcc_backend::compound_expression): Rename to ...
+	(Backend::compound_expression): ... here.
+	(Gcc_backend::conditional_expression): Rename to ...
+	(Backend::conditional_expression): ... here.
+	(Gcc_backend::negation_expression): Rename to ...
+	(Backend::negation_expression): ... here.
+	(Gcc_backend::arithmetic_or_logical_expression): Rename to ...
+	(Backend::arithmetic_or_logical_expression): ... here.
+	(Gcc_backend::arithmetic_or_logical_expression_checked): Rename to ...
+	(Backend::arithmetic_or_logical_expression_checked): ... here.
+	(Gcc_backend::comparison_expression): Rename to ...
+	(Backend::comparison_expression): ... here.
+	(Gcc_backend::lazy_boolean_expression): Rename to ...
+	(Backend::lazy_boolean_expression): ... here.
+	(Gcc_backend::constructor_expression): Rename to ...
+	(Backend::constructor_expression): ... here.
+	(Gcc_backend::array_constructor_expression): Rename to ...
+	(Backend::array_constructor_expression): ... here.
+	(Gcc_backend::array_initializer): Rename to ...
+	(Backend::array_initializer): ... here.
+	(Gcc_backend::array_index_expression): Rename to ...
+	(Backend::array_index_expression): ... here.
+	(Gcc_backend::call_expression): Rename to ...
+	(Backend::call_expression): ... here.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust-session-manager.cc (Session::load_extern_crate): Change
+	variable name, add temporaries and comments.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-proc-macro.h: Change get_trait_name to get_name in
+	order to be coherent with the others proc macro type name
+	convention.
+	* resolve/rust-toplevel-name-resolver-2.0.cc (insert_macros):
+	Add a templated funtion that inserts a proc macro into the
+	context and emit an error on failure.
+	(TopLevel::visit): Change from manual insertion to a function
+	call.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
+	Change to assertion.
+	* util/rust-hir-map.cc (Mappings::lookup_derive_proc_macros):
+	Add empty line.
+	(Mappings::lookup_bang_proc_macros): Likewise.
+	(Mappings::lookup_attribute_proc_macros): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* metadata/rust-extern-crate.cc (ExternCrate::ExternCrate):
+	Update definition to allow Extern crate with no content (pure
+	proc macros).
+	(ExternCrate::ok): Panic on no content.
+	(ExternCrate::load): Likewise.
+	* metadata/rust-extern-crate.h: Update prototypes.
+	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go):
+	Remove macro resolution.
+	(TopLevel::visit): Likewise.
+	* resolve/rust-toplevel-name-resolver-2.0.h: Add visit prototype
+	for extern crate.
+	* rust-session-manager.cc (Session::load_extern_crate): Adapt
+	content depending on the loaded crate's content.
+	* util/rust-hir-map.cc (Mappings::lookup_derive_proc_macros):
+	Change return type to optional because it is way more
+	convenient.
+	(Mappings::lookup_bang_proc_macros): Likewise.
+	(Mappings::lookup_attribute_proc_macros): Likewise.
+	* util/rust-hir-map.h: Update function prototypes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* metadata/rust-imports.cc (Import::try_package_in_directory):
+	Remove error when some macro are found even if no import data is
+	available.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h (class BangProcMacro): Move class from here to
+	rust-proc-macro.h. Also remove related functions.
+	(class AttributeProcMacro): Likewise.
+	(class CustomDeriveProcMacro): Likewise.
+	(struct Crate): Remove proc macro vector members.
+	* expand/rust-macro-expand.h (struct MacroExpander): Change the
+	type to the newly created classes.
+	* expand/rust-proc-macro.cc (BangProcMacro::BangProcMacro): Add
+	constructor implementation.
+	(AttributeProcMacro::AttributeProcMacro): Likewise.
+	(CustomDeriveProcMacro::CustomDeriveProcMacro): Likewise.
+	* expand/rust-proc-macro.h (class BangProcMacro): Move class to
+	here.
+	(class AttributeProcMacro): Likewise.
+	(class CustomDeriveProcMacro): Likewise.
+	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go):
+	Change top level visitor to check mappings instead
+	* rust-session-manager.cc (Session::load_extern_crate):
+	Add back macro collection to mappings.
+	* util/rust-hir-map.cc (Mappings::insert_derive_proc_macros):
+	Update getter signature with new types.
+	(Mappings::insert_bang_proc_macros): Likewise.
+	(Mappings::insert_attribute_proc_macros): Likewise.
+	(Mappings::lookup_derive_proc_macros): Likewise.
+	(Mappings::lookup_bang_proc_macros): Likewise.
+	(Mappings::lookup_attribute_proc_macros): Likewise.
+	(Mappings::insert_derive_proc_macro_def): Likewise.
+	(Mappings::insert_bang_proc_macro_def): Likewise.
+	(Mappings::insert_attribute_proc_macro_def): Likewise.
+	(Mappings::lookup_derive_proc_macro_def): Likewise.
+	(Mappings::lookup_bang_proc_macro_def): Likewise.
+	(Mappings::lookup_attribute_proc_macro_def): Likewise.
+	(Mappings::insert_derive_proc_macro_invocation): Likewise.
+	(Mappings::lookup_derive_proc_macro_invocation): Likewise.
+	(Mappings::insert_bang_proc_macro_invocation): Likewise.
+	(Mappings::lookup_bang_proc_macro_invocation): Likewise.
+	(Mappings::insert_attribute_proc_macro_invocation): Likewise.
+	(Mappings::lookup_attribute_proc_macro_invocation): Likewise.
+	* util/rust-hir-map.h: Update function prototypes as well as map
+	types.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go):
+	Visit crate's newly stored proc macros.
+	* rust-session-manager.cc (Session::load_extern_crate):
+	Store proc macros in the parsed crate instead of a local
+	variable to achieve mappings.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
+	Change argument to reference.
+	* resolve/rust-early-name-resolver-2.0.h: Update function
+	prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h: Add getters.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h (struct Crate): Add proc macro members.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h (class BangProcMacro): Add new proc macro
+	abstraction.
+	(class AttributeProcMacro): Likewise.
+	(class CustomDeriveProcMacro): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
+	Add function to handle attributes.
+	(Early::visit): Override visitor functions.
+	* resolve/rust-early-name-resolver-2.0.h: Add prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.cc (Attribute::get_traits_to_derive): Convert
+	tokenstream to path list.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.cc (Attribute::is_derive): Remove tokenstream
+	condition.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.cc (Attribute::get_traits_to_derive): Change
+	return type to a vector of references.
+	* ast/rust-ast.h: Update constructor.
+	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_inner_stmts):
+	Update function call.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.cc (Attribute::get_traits_to_derive): Add
+	function as member function.
+	* ast/rust-ast.h: Add prototype.
+	* expand/rust-expand-visitor.cc (get_traits_to_derive): Remove
+	function.
+	(ExpandVisitor::expand_inner_stmts): Update function call.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.cc (Attribute::is_derive): Add member function.
+	* ast/rust-ast.h: Likewise.
+	* expand/rust-expand-visitor.cc (is_derive): Remove old
+	function.
+	(ExpandVisitor::expand_inner_stmts): Update function call.
+	(ExpandVisitor::visit_inner_using_attrs): Likewise.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-expr.cc (CompileExpr::visit): use a temp for the value
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-backend.h
+	(Backend::block): Make non-virtual.
+	(Backend::block_add_statements): Likewise.
+	(Gcc_backend::block): Remove.
+	(Gcc_backend::block_add_statements): Remove.
+	* rust-gcc.cc
+	(Gcc_backend::block): Rename to ...
+	(Backend::block): ... here.
+	(Gcc_backend::block_add_statements): Rename to ...
+	(Backend::block_add_statements): ... here.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-macro-expand.h: Change include directive with the
+	new name.
+	* expand/rust-proc-macro.h (RUST_PROC_MACRO_H): Likewise.
+	* util/rust-hir-map.h: Likewise.
+	* util/rust-token-converter.h: Likewise.
+	* util/rust-token-converter.cc: Remove useless include
+	directive.
+	* Make-lang.in: Rename library.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-backend.h
+	(Backend::init_statement): Make non-virtual.
+	(Backend::assignment_statement): Likewise.
+	(Backend::return_statement): Likewise.
+	(Backend::if_statement): Likewise.
+	(Backend::loop_expression): Likewise.
+	(Backend::exit_expression): Likewise.
+	(Backend::compound_statement): Likewise.
+	(Backend::statement_list): Likewise.
+	(Backend::exception_handler_statement): Likewise.
+	(Gcc_backend::init_statement): Remove.
+	(Gcc_backend::assignment_statement): Remove.
+	(Gcc_backend::return_statement): Remove.
+	(Gcc_backend::if_statement): Remove.
+	(Gcc_backend::compound_statement): Remove.
+	(Gcc_backend::statement_list): Remove.
+	(Gcc_backend::exception_handler_statement): Remove.
+	(Gcc_backend::loop_expression): Remove.
+	(Gcc_backend::exit_expression): Remove.
+	* rust-gcc.cc
+	(Gcc_backend::init_statement): Rename to ...
+	(Backend::init_statement): ... here.
+	(Gcc_backend::assignment_statement): Rename to ...
+	(Backend::assignment_statement): ... here.
+	(Gcc_backend::return_statement): Rename to ...
+	(Backend::return_statement): ... here.
+	(Gcc_backend::exception_handler_statement): Rename to ...
+	(Backend::exception_handler_statement): ... here.
+	(Gcc_backend::if_statement): Rename to ...
+	(Backend::if_statement): ... here.
+	(Gcc_backend::loop_expression): Rename to ...
+	(Backend::loop_expression): ... here.
+	(Gcc_backend::exit_expression): Rename to ...
+	(Backend::exit_expression): ... here.
+	(Gcc_backend::compound_statement): Rename to ...
+	(Backend::compound_statement): ... here.
+	(Gcc_backend::statement_list): Rename to ...
+	(Backend::statement_list): ... here.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* 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.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-inherent-impl-overlap.h:
+	Added rich location and errorcode.
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+	likewise.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+	Added error code.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-backend.h
+	(Backend::zero_expression): Make non-virtual.
+	(Backend::var_expression): Likewise.
+	(Backend::integer_constant_expression): Likewise.
+	(Backend::float_constant_expression): Likewise.
+	(Backend::complex_constant_expression): Likewise.
+	(Backend::string_constant_expression): Likewise.
+	(Backend::char_constant_literal): Likewise.
+	(Backend::wchar_constant_literal): Likewise.
+	(Backend::boolean_constant_expression): Likewise.
+	(Gcc_backend::zero_expression): Remove.
+	(Gcc_backend::var_expression): Remove.
+	(Gcc_backend::integer_constant_expression): Remove.
+	(Gcc_backend::float_constant_expression): Remove.
+	(Gcc_backend::complex_constant_expression): Remove.
+	(Gcc_backend::string_constant_expression): Remove.
+	(Gcc_backend::wchar_constant_expression): Remove.
+	(Gcc_backend::char_constant_expression): Remove.
+	(Gcc_backend::boolean_constant_expression): Remove.
+	* rust-gcc.cc
+	(Gcc_backend::zero_expression): Rename to ...
+	(Backend::zero_expression): ... here.
+	(Gcc_backend::var_expression): Rename to ...
+	(Backend::var_expression): ... here.
+	(Gcc_backend::integer_constant_expression): Rename to ...
+	(Backend::integer_constant_expression): ... here.
+	(Gcc_backend::float_constant_expression): Rename to ...
+	(Backend::float_constant_expression): ... here.
+	(Gcc_backend::complex_constant_expression): Rename to ...
+	(Backend::complex_constant_expression): ... here.
+	(Gcc_backend::string_constant_expression): Rename to ...
+	(Backend::string_constant_expression): ... here.
+	(Gcc_backend::wchar_constant_expression): Rename to ...
+	(Backend::wchar_constant_expression): ... here.
+	(Gcc_backend::char_constant_expression): Rename to ...
+	(Backend::char_constant_expression): ... here.
+	(Gcc_backend::boolean_constant_expression): Rename to ...
+	(Backend::boolean_constant_expression): ... here.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-backend.h
+	(Backend::global_variable): Make non-virtual.
+	(Backend::global_variable_set_init): Likewise.
+	(Backend::local_variable): Likewise.
+	(Backend::parameter_variable): Likewise.
+	(Backend::static_chain_variable): Likewise.
+	(Backend::temporary_variable): Likewise.
+	(Gcc_backend::global_variable): Remove.
+	(Gcc_backend::global_variable_set_init): Remove.
+	(Gcc_backend::local_variable): Remove.
+	(Gcc_backend::parameter_variable): Remove.
+	(Gcc_backend::static_chain_variable): Remove.
+	(Gcc_backend::temporary_variable): Remove.
+	(Gcc_backend::non_zero_size_type): Move to ...
+	(Backend::non_zero_size_type): ... here.
+	(Gcc_backend::convert_tree): Move to ...
+	(Backend::convert_tree): ... here.
+	* rust-gcc.cc
+	(Gcc_backend::non_zero_size_type): Rename to ...
+	(Backend::non_zero_size_type): ... here.
+	(Gcc_backend::convert_tree): Rename to ...
+	(Backend::convert_tree): ... here.
+	(Gcc_backend::global_variable): Rename to ...
+	(Backend::global_variable): ... here.
+	(Gcc_backend::global_variable_set_init): Rename to ...
+	(Backend::global_variable_set_init): ... here.
+	(Gcc_backend::local_variable): Rename to ...
+	(Backend::local_variable): ... here.
+	(Gcc_backend::parameter_variable): Rename to ...
+	(Backend::parameter_variable): ... here.
+	(Gcc_backend::static_chain_variable): Rename to ...
+	(Backend::static_chain_variable): ... here.
+	(Gcc_backend::temporary_variable): Rename to ...
+	(Backend::temporary_variable): ... here.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* checks/errors/privacy/rust-privacy-reporter.cc
+	(PrivacyReporter::check_for_privacy_violation):
+	Added errorcode & richlocation.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-backend.h
+	(Backend::debug): Make non-virtual.
+	(Backend::get_identifier_node): Likewise.
+	(Gcc_backend::debug): Remove.
+	(Gcc_backend::get_identifier_node): Remove.
+	* rust-gcc.cc
+	(Gcc_backend::debug): Rename to ...
+	(Backend::debug): ... here.
+	(Gcc_backend::get_identifier_node): Rename to ...
+	(Backend::get_identifier_node): ... here.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc
+	(TypeCheckExpr::visit): Expect if conditions to have type bool.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-backend.h
+	(Backend::label): Make non-virtual.
+	(Backend::label_definition_statement): Likewise.
+	(Backend::goto_statement): Likewise.
+	(Backend::label_address): Likewise.
+	(Gcc_backend::label): Remove.
+	(Gcc_backend::label_definition_statement): Remove.
+	(Gcc_backend::goto_statement): Remove.
+	(Gcc_backend::label_address): Remove.
+	* rust-gcc.cc
+	(Gcc_backend::label): Rename to ...
+	(Backend::label): ... here.
+	(Gcc_backend::label_definition_statement): Rename to ...
+	(Backend::label_definition_statement): ... here.
+	(Gcc_backend::goto_statement): Rename to ...
+	(Backend::goto_statement): ... here.
+	(Gcc_backend::label_address): Rename to ...
+	(Backend::label_address): ... here.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-constexpr.cc
+	(struct constexpr_fundef): Rename to ...
+	(struct rust_constexpr_fundef): ... here.
+	(struct constexpr_call): Rename to ...
+	(struct rust_constexpr_call): ... here.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* lex/rust-input-source.h: Move constants from here...
+	* util/rust-codepoint.h (struct Codepoint): ... to here
+	* util/rust-attributes.cc (check_no_mangle_function): New function.
+	(AttributeChecker::visit): Use it.
+	* util/rust-unicode.cc (is_ascii_only): New function.
+	* util/rust-unicode.h (is_ascii_only): Likewise.
+	* backend/rust-mangle.cc (legacy_mangle_name): Use it.
+	* util/rust-punycode.cc (extract_basic_string): Likewise.
+	* lex/rust-lex.cc (Lexer::parse_byte_char): Likewise.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit):
+	Added richlocation & error code.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc
+	(TypeCheckExpr::resolve_fn_trait_call): Add TODO comment.
+	* typecheck/rust-tyty-bounds.cc
+	(TypeBoundPredicate::TypeBoundPredicate):
+	Add assertions, new error constructor.
+	(TypeBoundPredicate::error): Use new error constructor.
+	* typecheck/rust-tyty.h
+	(struct TypeBoundPredicate::mark_is_error): New.
+	(TypeBoundPredicate::TypeBoundPredicate):
+	Add new error constructor.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-backend.h:
+	(Backend::wchar_type): Make non-virtual.
+	(Backend::get_pointer_size): Likewise.
+	(Backend::raw_str_type): Likewise.
+	(Backend::integer_type): Likewise.
+	(Backend::float_type): Likewise.
+	(Backend::complex_type): Likewise.
+	(Backend::pointer_type): Likewise.
+	(Backend::reference_type): Likewise.
+	(Backend::immutable_type): Likewise.
+	(Backend::function_type): Likewise.
+	(Backend::function_type_varadic): Likewise.
+	(Backend::function_ptr_type): Likewise.
+	(Backend::struct_type): Likewise.
+	(Backend::union_type): Likewise.
+	(Backend::array_type): Likewise.
+	(Backend::named_type): Likewise.
+	(Backend::type_size): Likewise.
+	(Backend::type_alignment): Likewise.
+	(Backend::type_field_alignment): Likewise.
+	(Backend::type_field_offset): Likewise.
+	(Gcc_backend::wchar_type): Remove.
+	(Gcc_backend::get_pointer_size): Remove.
+	(Gcc_backend::raw_str_type): Remove.
+	(Gcc_backend::integer_type): Remove.
+	(Gcc_backend::float_type): Remove.
+	(Gcc_backend::complex_type): Remove.
+	(Gcc_backend::pointer_type): Remove.
+	(Gcc_backend::reference_type): Remove.
+	(Gcc_backend::immutable_type): Remove.
+	(Gcc_backend::function_type): Remove.
+	(Gcc_backend::function_type_varadic): Remove.
+	(Gcc_backend::function_ptr_type): Remove.
+	(Gcc_backend::struct_type): Remove.
+	(Gcc_backend::union_type): Remove.
+	(Gcc_backend::array_type): Remove.
+	(Gcc_backend::named_type): Remove.
+	(Gcc_backend::type_size): Remove.
+	(Gcc_backend::type_alignment): Remove.
+	(Gcc_backend::type_field_alignment): Remove.
+	(Gcc_backend::type_field_offset): Remove.
+	(Gcc_backend::fill_in_fields): Move to ...
+	(Backend::fill_in_fields): ... here.
+	(Gcc_backend::fill_in_array): Move to ...
+	(Backend::fill_in_array): ... here.
+	* rust-gcc.cc
+	(Gcc_backend::wchar_type): Rename to ...
+	(Backend::wchar_type): ... here.
+	(Gcc_backend::get_pointer_size): Rename to ...
+	(Backend::get_pointer_size): ... here.
+	(Gcc_backend::raw_str_type): Rename to ...
+	(Backend::raw_str_type): ... here.
+	(Gcc_backend::integer_type): Rename to ...
+	(Backend::integer_type): ... here.
+	(Gcc_backend::float_type): Rename to ...
+	(Backend::float_type): ... here.
+	(Gcc_backend::complex_type): Rename to ...
+	(Backend::complex_type): ... here.
+	(Gcc_backend::pointer_type): Rename to ...
+	(Backend::pointer_type): ... here.
+	(Gcc_backend::reference_type): Rename to ...
+	(Backend::reference_type): ... here.
+	(Gcc_backend::immutable_type): Rename to ...
+	(Backend::immutable_type): ... here.
+	(Gcc_backend::function_type): Rename to ...
+	(Backend::function_type): ... here.
+	(Gcc_backend::function_type_varadic): Rename to ...
+	(Backend::function_type_varadic): ... here.
+	(Gcc_backend::function_ptr_type): Rename to ...
+	(Backend::function_ptr_type): ... here.
+	(Gcc_backend::struct_type): Rename to ...
+	(Backend::struct_type): ... here.
+	(Gcc_backend::union_type): Rename to ...
+	(Backend::union_type): ... here.
+	(Gcc_backend::fill_in_fields): Rename to ...
+	(Backend::fill_in_fields): ... here.
+	(Gcc_backend::array_type): Rename to ...
+	(Backend::array_type): ... here.
+	(Gcc_backend::fill_in_array): Rename to ...
+	(Backend::fill_in_array): ... here.
+	(Gcc_backend::named_type): Rename to ...
+	(Backend::named_type): ... here.
+	(Gcc_backend::type_size): Rename to ...
+	(Backend::type_size): ... here.
+	(Gcc_backend::type_alignment): Rename to ...
+	(Backend::type_alignment): ... here.
+	(Gcc_backend::type_field_alignment): Rename to ...
+	(Backend::type_field_alignment): ... here.
+	(Gcc_backend::type_field_offset): Rename to ...
+	(Backend::type_field_offset): ... here.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-intrinsic.cc (move_val_init_handler): mark as side-effects
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-intrinsic.cc (uninit_handler): Update fndecl attributes
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-intrinsic.cc (op_with_overflow_inner): fix use before init
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-intrinsic.cc (enter_intrinsic_block): take the locals vector
+	(uninit_handler): make a temp variable and use the address of it
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* resolve/rust-early-name-resolver-2.0.cc (Early::visit):
+	Collect error instead of lambda.
+	* resolve/rust-early-name-resolver-2.0.h (std::function<void):
+	Remove type alias.
+	* rust-diagnostics.h: Change collection type.
+	* rust-session-manager.cc (Session::expansion): Change
+	collection container.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* resolve/rust-early-name-resolver-2.0.cc (Early::visit):
+	Collect error instead of emitting it. Also add invocation
+	registration.
+	* resolve/rust-early-name-resolver-2.0.h (std::function<void):
+	Add type definition for collection.
+	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
+	Register macro rule definition in mappings.
+	* rust-session-manager.cc (Session::expansion): Add macro
+	resolve error collection.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* config-lang.in:
+	Add "backend/rust-tree.h" and "backend/rust-tree.h" to gtfiles.
+	* backend/rust-tree.cc: Include new header generated by gengtype.
+	* backend/rust-tree.h
+	(struct language_function): Add TODO.
+	* rust-lang.cc:
+	Include "rust-tree.h".
+	(struct lang_type): Remove duplicate definition.
+	(struct lang_decl): Likewise.
+	(struct lang_identifier): Likewise.
+	(struct language_function): Likewise.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+	Added error code and rich location.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-tree.h
+	(struct rust_cp_class_binding): Fork from gcc/cp/name_lookup.h.
+	(struct rust_cp_binding_level): Likewise.
+	(struct named_label_entry): Remove declaration...
+	(struct rust_named_label_entry): ... and fork definition from gcc/cp/decl.cc.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust-diagnostics.cc (rust_be_error_at): Added overload function.
+	(rust_error_at): non-const `rich_location *` function.
+	* rust-diagnostics.h (rust_error_at): Implementation of overloaded
+	function.
+	(rust_be_error_at): likewise.
+	* rust_error_codes.def: Added GNU license.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-tyty.cc (BaseType::satisfies_bound):
+	Added errorcode and user-friendly error message.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-tree.cc
+	(resort_data): Fork from c++ frontend.
+	(resort_member_name_cmp): Likewise.
+	(resort_type_member_vec): Likewise.
+	* backend/rust-tree.h
+	(resort_type_member_vec): Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-tree.cc
+	(struct conv_type_hasher): Rename to ...
+	(struct rust_conv_type_hasher): ... here.
+	(struct cplus_array_hasher): Rename to ...
+	(struct rust_cplus_array_hasher): ... here.
+	(struct source_location_table_entry_hash): Rename to ...
+	(struct rust_source_location_table_entry_hash): ... here.
+	* backend/rust-tree.h
+	(struct named_decl_hash): Rename to ...
+	(struct rust_named_decl_hash): ... here.
+	(struct cxx_saved_binding): Rename to ...
+	(struct rust_cxx_saved_binding): ... here.
+	(struct named_label_hash): Rename to ...
+	(struct rust_named_label_hash): ... here.
+	(struct tree_pair_s): Rename to ...
+	(struct rust_tree_pair_s): ... here.
+	(struct tree_pair_p): Rename to ...
+	(struct rust_tree_pair_p): ... here.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-tree.cc
+	(Rust::gt_pch_nx): Move external function declaration ...
+	(gt_pch_nx): ... out of Rust namespace.
+	* backend/rust-tree.h
+	(OVL_FIRST): Qualify function name.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): do a final lookup
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_generic_params):
+	Added more user friendly message.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-builtins.cc
+	(MacroBuiltin::include_str_handler): Use vector::data.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-type.cc:
+	Added last variant name, errorcode & rich location. for enum candidates.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-tree.h
+	(struct stmt_tree_s): Remove.
+	(typedef stmt_tree): Remove.
+	(c_language_function::x_stmt_tree): Remove.
+	(saved_scope::x_stmt_tree): Remove.
+	(lang_decl_fn::pending_inline_p): Remove.
+	(lang_decl_fn::spare): Adjust size.
+	(lang_decl_fn::pending_inline_info): Remove.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-constexpr.cc:
+	Include gt-rust-rust-constexpr.h.
+	(struct constexpr_call_hasher): Rename to ...
+	(struct rust_constexpr_call_hasher): ... here.
+	(struct constexpr_fundef_hasher): Rename to ...
+	(struct rust_constexpr_fundef_hasher): ... here.
+	* config-lang.in: Add rust-constexpr.cc to gtfiles.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* backend/rust-mangle.cc (v0_add_identifier): Added punycode encoding
+	(v0_mangle_item): Likewise.
+	* lex/rust-lex.cc (assert_source_content): Change type
+	(test_buffer_input_source): Change type
+	(test_file_input_source): Change type
+	* resolve/rust-ast-resolve-toplevel.h: fix typo
+	* rust-session-manager.cc (Session::load_extern_crate): fix typo
+	* util/rust-canonical-path.h: fix typo
+	* util/rust-hir-map.cc (NodeMapping::get_error): fix typo
+	(Mappings::Mappings): fix typo
+	* util/rust-mapping-common.h (UNKNOWN_CREATENUM): fix typo
+	(UNKNOWN_CRATENUM): Change 0 to UINT32_MAX
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait):
+	Updated errorcode & more userfriendly message.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit):
+	Added more helpful error message.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-path-probe.h:
+	Fixes issue & added rich location message.
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+	Added rich location and error code.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lex/rust-lex.cc (Lexer::parse_decimal_int_or_float): Only
+	accept digits after a dot instead of accepting any float
+	member.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* ast/rust-pattern.h: No need of assertion, we are handling it.
+	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+	Added check which emits error instead of using assertion.
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+	Added rich location and error code.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* backend/rust-compile-base.cc (HIRCompileBase::handle_inline_attribute_on_fndecl):
+	Added rich_location & error code.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_trait):
+	added errorcode & updated error message.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_outer_attribute):
+	Added errorcode & updated error function.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust-diagnostics.cc (va_constructor):
+	Added constructor for all possible cases.
+	(Error::Error): Updated error struct
+	for all possible cases.
+	* rust-diagnostics.h (struct Error):
+	Updated error struct to support error
+	code & rich location support.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* backend/rust-compile-base.cc (HIRCompileBase::handle_inline_attribute_on_fndecl):
+	Added rich_location & error code.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust-diagnostics.cc: Switch from new[] to xcalloc
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* util/make-rust-unicode.py: Add type annotation
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-intrinsic.cc (check_for_cached_intrinsic):
+	simplify this cached intrinsic check
+	* backend/rust-mangle.cc (legacy_mangle_item): use new interface
+	* typecheck/rust-tyty.h: new managle helper
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address):
+	use the single candidate
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* hir/rust-hir-dump.cc (Dump::visit): Remove useless if/else
+	already handled by visit_field.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* util/rust-punycode.cc: Add CHECKING_P guard.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* backend/rust-mangle.cc (legacy_mangle_name): Use Unicode escape
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): remove hack
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-proc-macro-invoc-lexer.cc
+	(ProcMacroInvocLexer::skip_token): Remove.
+	* expand/rust-proc-macro-invoc-lexer.h:
+	Include "rust-macro-invoc-lexer.h".
+	(class ProcMacroInvocLexer):
+	Extend MacroInvocLexerBase.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* lex/rust-codepoint.h: Moved to...
+	* util/rust-codepoint.h: ...here.
+	* lex/rust-input-source.h: Add missing license
+	* util/rust-unicode.cc: Add missing license
+	* util/rust-punycode.cc (extract_basic_string): Remove constant
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* expand/rust-macro-expand.h: Keep optional references for last_def
+	and last_invoc.
+	* expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Store
+	optional references.
+	* rust-session-manager.cc (Session::expansion): Use tl::optional's APIs
+	for better checking.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* hir/rust-hir-dump.h (do_ifexpr): New.
+	* hir/rust-hir-dump.cc (Dump::do_ifexpr): New.
+	(Dump::visit): Use do_ifexpr and visit_field
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-casts.cc (TypeCastRules::emit_cast_error):
+	Refactored ErrorCodes & error messages.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* backend/rust-compile-base.cc:
+	Added ErrorCode.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_qualifiers):
+	called error function.
+	(ASTLoweringBase::lower_extern_block): likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-ast-collector.cc: Adjust formatting.
+	* checks/errors/rust-feature-gate.cc: Add trailing newline.
+	* rust-diagnostics.h: Remove old comment.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-gcc.cc
+	(Gcc_backend::struct_type): Remove references to "this".
+	(Gcc_backend::union_type): Likewise.
+	(Gcc_backend::array_type): Likewise.
+	(Gcc_backend::wchar_constant_expression): Likewise.
+	(Gcc_backend::convert_expression): Likewise.
+	(Gcc_backend::constructor_expression): Likewise.
+	(Gcc_backend::array_initializer): Likewise.
+	(Gcc_backend::assignment_statement): Likewise.
+	(Gcc_backend::global_variable): Likewise.
+	(Gcc_backend::temporary_variable): Likewise.
+	(Gcc_backend::function_defer_statement): Likewise.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* Make-lang.in: Add rust-punycode.o.
+	* rust-lang.cc (run_rust_tests): Add selftest.
+	* util/rust-punycode.cc: New file.
+	* util/rust-punycode.h: New file.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* backend/rust-compile.cc (HIRCompileBase::verify_array_capacities):
+	Added ErrorCode.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve):
+	added errorcode.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* 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.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-compile-type.cc
+	(TyTyResolveCompile::visit): Inline Backend::bool_type call.
+	* rust-backend.h
+	(Backend::bool_type): Remove.
+	(Backend::char_type): Remove.
+	(Gcc_backend::bool_type): Remove.
+	(Gcc_backend::char_type): Remove.
+	* rust-gcc.cc
+	(Gcc_backend::char_constant_expression): Inline Backend::char_type call.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* lex/rust-lex.cc (assert_source_content): Fix namespace specifier
+	(test_buffer_input_source): Likewise.
+	(test_file_input_source): Likewise.
+	* lex/rust-lex.h: Move InputSource ...
+	* lex/rust-input-source.h: ... to here. (New file)
+	* lex/rust-token.cc (nfc_normalize_token_string): New function
+	* lex/rust-token.h (nfc_normalize_token_string): New function
+	* rust-lang.cc (run_rust_tests): Modify order of selftests.
+	* rust-session-manager.cc (validate_crate_name): Modify interface of Utf8String.
+	* util/rust-unicode.cc (lookup_cc): Modify codepoint_t typedef.
+	(lookup_recomp): Likewise.
+	(recursive_decomp_cano): Likewise.
+	(decomp_cano): Likewise.
+	(sort_cano): Likewise.
+	(compose_hangul): Likewise.
+	(assert_normalize): Likewise.
+	(Utf8String::nfc_normalize): New function.
+	* util/rust-unicode.h: Modify interface of Utf8String.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go):
+	Added ErrorCode.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-common.h (enum_to_str): Remove extra semicolon after
+	the function.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* checks/errors/rust-const-checker.cc (ConstChecker::visit):
+	Use of mutable reference in constant functions.
+	* checks/errors/rust-feature-gate.cc (FeatureGate::gate):
+	ErrorCode for intrinsics are subject to change.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* checks/errors/rust-const-checker.cc (ConstChecker::check_function_call):
+	Added errorcode.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args):
+	Added errorcode.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Declare
+	macros in the current rib if they are macros 2.0.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-macro.h: Add new method to `MacroRulesDefinition` to allow
+	getting the `MacroKind` contained.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust-session-manager.cc
+	(Session::expansion): Use new `Early` name resolution 2.0 pass
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* Make-lang.in: Add new object file.
+	* resolve/rust-early-name-resolver-2.0.cc: New file.
+	* resolve/rust-early-name-resolver-2.0.h: New file.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* resolve/rust-default-resolver.cc
+	(DefaultResolver::visit): Visit CallExpr and MethodCallExpr properly.
+	* resolve/rust-default-resolver.h: Switch "node" to plural in documentation.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* resolve/rust-toplevel-name-resolver-2.0.cc
+	(TopLevel::insert_or_error_out): Fix format string.
+	(is_macro_export): New method.
+	(TopLevel::visit): Handle macro definitions.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* resolve/rust-name-resolution-context.cc
+	(Resolver::insert): Do not call into `rust_unreachable` when resolving
+	macros anymore.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* resolve/rust-forever-stack.h
+	(insert_at_root): New method.
+	(resolve_path): New method.
+	(reverse_iter): Iterate on `Node`s instead of `Rib`s
+	* resolve/rust-forever-stack.hxx: Add path resolution.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* resolve/rust-rib.h: Add shadowing parameter. Make kind field public.
+	* resolve/rust-rib.cc (Rib::insert): Likewise.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
+	refactored message and called error function.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* checks/errors/rust-feature-gate.cc (FeatureGate::check):
+	errorcode support for unknown feature.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-unify.cc (UnifyRules::emit_type_mismatch):
+	refactored & called error function.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* expand/rust-macro-builtins.cc
+	(load_file_bytes): Return a tl::optional.
+	(MacroBuiltin::include_byte_handler): Adjust and check file was
+	correctly opened.
+	(MacroBuiltin::include_str_handler): Likewise.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* resolve/rust-toplevel-name-resolver-2.0.h
+	(class TopLevel): Inherit from DefaultResolver
+	* resolve/rust-toplevel-name-resolver-2.0.cc
+	(TopLevel::TopLevel): Remove unecessary methods
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* Make-lang.in: Add new object file.
+	* resolve/rust-default-resolver.cc: New file.
+	* resolve/rust-default-resolver.h: New file.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* util/rust-unicode.cc (decomp_cano): Decompose Hangul.
+	(sort_cano): Fix bounds check.
+	(recomp): use `compose_hangul`.
+	(compose_hangul): Compose Hangul.
+	(rust_utf8_normalize_test): Add tests.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* resolve/rust-forever-stack.hxx: assert() -> rust_assert()
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* Make-lang.in: Add new object file.
+	* resolve/rust-toplevel-name-resolver-2.0.cc: New file.
+	* resolve/rust-toplevel-name-resolver-2.0.h: New file.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* Make-lang.in: Add new object file.
+	* resolve/rust-name-resolution-context.cc: New file.
+	* resolve/rust-name-resolution-context.h: New file.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+	called error function.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-invoc-lexer.cc
+	(MacroInvocLexer::skip_token): Remove.
+	* expand/rust-macro-invoc-lexer.h
+	(class MacroInvocLexer): Extend MacroInvocLexerBase.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* ast/rust-ast-fragment.cc (Fragment::create_empty): New.
+	* ast/rust-ast-fragment.h (MacroTranscriberFunc): New.
+	* ast/rust-macro.h (MacroRulesDefinition): Use MacroTranscriberFunc.
+	* expand/rust-macro-builtins.cc
+	(MacroBuiltin::builtin_transcribers): likewise.
+	(MacroBuiltin::assert_handler): Return optional.
+	(MacroBuiltin::file_handler): Likewise.
+	(MacroBuiltin::column_handler): Likewise.
+	(MacroBuiltin::include_bytes_handler): Likewise.
+	(MacroBuiltin::include_str_handler): Likewise.
+	(MacroBuiltin::compile_error_handler): Likewise.
+	(MacroBuiltin::concat_handler): Likewise.
+	(MacroBuiltin::env_handler): Likewise.
+	(MacroBuiltin::cfg_handler): Likewise.
+	(MacroBuiltin::include_handler): Likewise.
+	(MacroBuiltin::line_handler): Likewise.
+	(MacroBuiltin::stringify_handler): Likewise.
+	(MacroBuiltin::sorry): Likewise.
+	* expand/rust-macro-builtins.h (builtin_transcribers): Use
+	MacroTranscriberFunc.
+	(assert_handler): Return optional.
+	(file_handler): Likewise.
+	(column_handler): Likewise.
+	(include_bytes_handler): Likewise.
+	(include_str_handler): Likewise.
+	(compile_error_handler): Likewise.
+	(concat_handler): Likewise.
+	(env_handler): Likewise.
+	(cfg_handler): Likewise.
+	(include_handler): Likewise.
+	(line_handler): Likewise.
+	(stringify_handler): Likewise.
+	(sorry): Likewise.
+	* expand/rust-macro-expand.cc (MacroExpander::expand_invoc):
+	Adjust to transcribers returning optional.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item):
+	always resolve the type even when its an a mandatory trait item
+	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path):
+	Add check for enum candidates otherwise you get undefined behaviour
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* lex/rust-codepoint.h: Add comment
+	* lex/rust-lex.h: New method to get decoded characters
+	* rust-session-manager.cc (validate_crate_name): Modify unicode check
+	(rust_crate_name_validation_test): Add testcases
+	* util/rust-unicode.h (RUST_UNICODE_H): New class Utf8String.
+	(class Utf8String): New class.
+	* util/rust-unicode.cc (binary_search_sorted_array): Add comment.
+	(recursive_decomp_cano): Add comment.
+	(recomp): Remove dead code.
+	(dump_string): Removed.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* util/rust-unicode.cc: Add CHECKING_P guard.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+	We need to check if a function context exists
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* expand/rust-proc-macro.cc (literal_from_string): update Lexer constructor
+	(tokenstream_from_string): likewise
+	* lex/rust-lex.cc (Lexer::Lexer): likewise
+	* lex/rust-lex.h: pass through Linemap
+	* parse/rust-cfg-parser.cc (parse_cfg_option): likewise
+	* rust-session-manager.cc (Session::load_extern_crate): likewise
+	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait):
+	dont apply Sized on self
+	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::get_marker_predicate): new
+	* typecheck/rust-hir-type-check-base.h: add prototype
+	* typecheck/rust-hir-type-check-type.cc (TypeResolveGenericParam::Resolve): apply Sized
+	(TypeResolveGenericParam::visit): likewise
+	* typecheck/rust-hir-type-check-type.h: update prototypes
+	* typecheck/rust-typecheck-context.cc: remove bad assertions
+	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_sized_builtin): cleanup
+	(TypeCheckBase::get_predicate_from_bound): apply sized rules properly
+	* util/rust-hir-map.cc (Mappings::lookup_trait_item_lang_item): helpers
+	(Mappings::get_lang_item): likewise
+	* util/rust-hir-map.h: likewise
+	* util/rust-token-converter.cc (from_ident): update lexer ctor
+	(from_punct): likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-path-probe.cc: track regular polarity
+	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): likewise
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
+	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): likewise
+	* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): likewise
+	(TypeBoundPredicate::TypeBoundPredicate): update ctor
+	(TypeBoundPredicate::operator=): update copy assignment ctor
+	(TypeBoundPredicate::error): update error node
+	* typecheck/rust-tyty.h: add polarity field to predicate
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): use new BoundPolarity enum
+	* hir/rust-ast-lower-type.cc (ASTLoweringTypeBounds::visit): likewise
+	* hir/rust-hir-dump.cc (BoundPolarityString): new helper
+	(Dump::visit): update hir dump
+	* hir/tree/rust-hir-item.h (class ImplBlock): likewise
+	* hir/tree/rust-hir-type.h (class TraitBound): likewise
+	* hir/tree/rust-hir.cc (TraitBound::as_string): fix as string
+	* util/rust-common.h (enum Polarity): add new anti bound
+	(enum BoundPolarity): likewise
+	* util/rust-hir-map.cc (Mappings::Mappings): update naming
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-backend.h: Include "rust-gcc.h".
+	(class Gcc_backend): Move to ...
+	* rust-gcc.cc (class Gcc_backend): ... here.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-item.cc: add is_error check
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* Make-lang.in: Add rust-unicode.o
+	* rust-lang.cc (run_rust_tests): Add test.
+	* rust-system.h: Include <array>
+	* util/make-rust-unicode.py: Generater of rust-unicode-data.h.
+	* util/rust-unicode-data.h: Auto-generated file.
+	* util/rust-unicode.cc: New file.
+	* util/rust-unicode.h: New file.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust-diagnostics.cc: Rework `make_description` and `make_url` functions.
+	* rust-diagnostics.h: Specify ErrorCode's underlying type,
+	remove error_codes_strings table.
+	* rust_error_codes.def: New file.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-location.h (typedef Location): Remove.
+	* expand/rust-proc-macro.cc
+	(register_callback): Replace Location constructor with UNDEF_LOCATION.
+	* ast/rust-ast-collector.h: Replace Location with location_t.
+	* checks/errors/privacy/rust-privacy-reporter.cc: Likewise.
+	* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
+	* checks/errors/privacy/rust-pub-restricted-visitor.cc: Likewise.
+	* checks/errors/privacy/rust-pub-restricted-visitor.h: Likewise.
+	* checks/errors/rust-feature-gate.cc: Likewise.
+	* checks/errors/rust-feature-gate.h: Likewise.
+	* metadata/rust-imports.h: Likewise.
+	* resolve/rust-ast-resolve-path.h: Likewise.
+	* resolve/rust-name-resolver.h: Likewise.
+	* rust-backend.h: Likewise.
+	* rust-diagnostics.h: Likewise.
+	* rust-gcc.cc: Likewise.
+	* rust-linemap.h: Likewise.
+	* util/rust-attributes.cc: Likewise.
+	* util/rust-hir-map.cc: Likewise.
+	* util/rust-hir-map.h: Likewise.
+	* util/rust-token-converter.cc: Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* typecheck/rust-autoderef.cc: Replace Location with location_t.
+	* typecheck/rust-coercion.cc: Likewise.
+	* typecheck/rust-coercion.h: Likewise.
+	* typecheck/rust-hir-path-probe.h: Likewise.
+	* typecheck/rust-hir-trait-reference.cc: Likewise.
+	* typecheck/rust-hir-trait-resolve.cc: Likewise.
+	* typecheck/rust-hir-type-check-base.cc: Likewise.
+	* typecheck/rust-hir-type-check-expr.cc: Likewise.
+	* typecheck/rust-hir-type-check-expr.h: Likewise.
+	* typecheck/rust-hir-type-check-implitem.cc: Likewise.
+	* typecheck/rust-hir-type-check-item.cc: Likewise.
+	* typecheck/rust-hir-type-check-path.cc: Likewise.
+	* typecheck/rust-hir-type-check-pattern.cc: Likewise.
+	* typecheck/rust-hir-type-check-stmt.cc: Likewise.
+	* typecheck/rust-hir-type-check-struct.cc: Likewise.
+	* typecheck/rust-hir-type-check-type.cc: Likewise.
+	* typecheck/rust-hir-type-check-type.h: Likewise.
+	* typecheck/rust-type-util.cc: Likewise.
+	* typecheck/rust-type-util.h: Likewise.
+	* typecheck/rust-tyty-bounds.cc: Likewise.
+	* typecheck/rust-tyty-call.cc: Likewise.
+	* typecheck/rust-tyty-call.h: Likewise.
+	* typecheck/rust-tyty-cmp.h: Likewise.
+	* typecheck/rust-tyty-subst.cc: Likewise.
+	* typecheck/rust-tyty-subst.h: Likewise.
+	* typecheck/rust-tyty.cc: Likewise.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+	refactored error message & called error function.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-proc-macro.cc (literal_from_string): Add callback
+	function.
+	(load_macros_array): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (handle_suffix): Rework function
+	to make it work with the new literal conversion function.
+	(convert_literal): Add a new function to convert to a proc macro
+	literal from a literal tokenptr. The function will abort if the
+	pointer does not point to a literal.
+	(convert): Add call to convert literal for every literal case.
+	* util/rust-token-converter.h (convert_literal): Add public
+	prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-proc-macro.cc: Remove static modifier and move to
+	an anonymous namespace.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* backend/rust-compile-intrinsic.cc (Intrinsics::compile):
+	Formatted according to enum class.
+	* checks/errors/rust-feature-gate.cc (FeatureGate::gate): likewise.
+	* checks/errors/rust-unsafe-checker.cc (check_unsafe_call): likewise.
+	* hir/rust-ast-lower-base.cc (struct_field_name_exists): likewise.
+	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): likewise.
+	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path):
+	likewise.
+	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go): likewise.
+	(PatternDeclaration::add_new_binding): likewise.
+	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): likewise.
+	* resolve/rust-ast-verify-assignee.h: likewise.
+	* rust-diagnostics.cc: updated make_desc & url function for enum class.
+	* rust-diagnostics.h (struct ErrorCode): removed struct to switch to enum.
+	(enum class): Switched from errorcode struct to enum class.
+	(XSTR): Macro for converting enum to string.
+	(STR): macro Used by XSTR for converting to string.
+	(ERROR_CODE): macro used by map for check.
+	(TABLE_TO_MAP): macro used by map for check
+	* typecheck/rust-casts.cc (TypeCastRules::emit_cast_error):
+	Formatted according to enum class.
+	* typecheck/rust-hir-path-probe.h: likewise.
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise.
+	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
+	likewise.
+	(TypeCheckImplItemWithTrait::visit): likewise.
+	* typecheck/rust-hir-type-check-item.cc: likewise.
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): likewise.
+	(emit_invalid_field_error): likewise.
+	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve): likewise.
+	* typecheck/rust-tyty-call.cc (emit_unexpected_argument_error): likewise.
+	(TypeCheckCallExpr::visit): likewise.
+	* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args):
+	likewise.
+	* typecheck/rust-tyty.cc (BaseType::bounds_compatible): likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-attributes.cc (check_proc_macro_non_root): Add
+	function to emit this specific error.
+	(AttributeChecker::visit): Modify visitor to propagate to some
+	containers that were not handled correctly.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-compile-base.h: Replace Location with location_t.
+	* metadata/rust-imports.h: Likewise.
+	* resolve/rust-name-resolver.cc: Likewise.
+	* resolve/rust-name-resolver.h: Likewise.
+	* rust-backend.h: Likewise.
+	* rust-gcc.cc: Likewise.
+	* rust-gcc.h: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-proc-macro.cc (available): Remove function.
+	(load_macros_array): There was no need for an indirection here.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-proc-macro.cc (available): Add symbol
+	registration.
+	(load_macros_array): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-proc-macro.cc (load_macros_array): Symbol rename.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* checks/errors/privacy/rust-privacy-reporter.cc (find_proc_macro_attribute):
+	Refactor the function to be safer and more efficient.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* checks/errors/privacy/rust-privacy-reporter.cc (find_proc_macro_attribute):
+	Add a new function to find a potential proc macro type
+	attribute on a given item.
+	(proc_macro_privacy_check): Move all proc macro privacy check in
+	their own function to avoid cluttering the usual privacy check.
+	(PrivacyReporter::go): Add call to newly created proc macro
+	privacy check function.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::go):
+	Add visibility verification.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-attributes.cc (is_proc_macro_type): Add function to
+	identify matching proc macro attribute type.
+	(check_proc_macro_non_function): Add function to check and emit
+	error.
+	(AttributeChecker::visit): Add cal to new check function.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h: Remove NodeId from identifiers.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
+	Added check for error code support.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit):
+	called error function.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-compile-base.cc: Replace Location with location_t.
+	* backend/rust-compile-base.h: Likewise.
+	* backend/rust-compile-expr.cc: Likewise.
+	* lex/rust-token.h: Likewise.
+	* metadata/rust-import-archive.cc: Likewise.
+	* metadata/rust-imports.cc: Likewise.
+	* metadata/rust-imports.h: Likewise.
+	* rust-backend.h: Likewise.
+	* rust-diagnostics.cc: Likewise.
+	* rust-diagnostics.h: Likewise.
+	* rust-gcc.cc: Likewise.
+	* rust-linemap.cc: Likewise.
+	* util/rust-token-converter.cc: Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-ast-builder.h: Replace Location with location_t.
+	* ast/rust-ast.h: Likewise.
+	* ast/rust-expr.h: Likewise.
+	* ast/rust-item.h: Likewise.
+	* ast/rust-macro.h: Likewise.
+	* ast/rust-path.h: Likewise.
+	* hir/tree/rust-hir-expr.h: Likewise.
+	* hir/tree/rust-hir-item.h: Likewise.
+	* hir/tree/rust-hir-path.h: Likewise.
+	* hir/tree/rust-hir.h: Likewise.
+	* lex/rust-lex.cc: Likewise.
+	* lex/rust-lex.h: Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-derive-clone.cc: Replace Location with location_t.
+	* expand/rust-derive-clone.h: Likewise.
+	* expand/rust-derive-copy.cc: Likewise.
+	* expand/rust-derive-copy.h: Likewise.
+	* expand/rust-derive.cc: Likewise.
+	* expand/rust-derive.h: Likewise.
+	* expand/rust-macro-builtins.cc: Likewise.
+	* expand/rust-macro-builtins.h: Likewise.
+	* expand/rust-macro-expand.cc: Likewise.
+	* parse/rust-parse-impl.h: Likewise.
+	* parse/rust-parse.cc: Likewise.
+	* parse/rust-parse.h: Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* parse/rust-parse-impl.h
+	(Parser::parse_macro_match): Use token_id_is_keyword.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h (class Identifier): Remove interface
+	inheritance.
+	(class SimplePath): Likewise.
+	* expand/rust-expand-visitor.cc (get_traits_to_derive): Change
+	return type.
+	(derive_item): Update according to get_traits_to_derive return
+	type.
+	(expand_item_attribute): Likewise.
+	(ExpandVisitor::expand_inner_stmts): Likewise.
+	* expand/rust-macro-expand.h (struct MacroExpander): Likewise.
+	* util/rust-hir-map.cc (Mappings::insert_derive_proc_macro_invocation):
+	Change input type to SimplePath.
+	(Mappings::lookup_derive_proc_macro_invocation): Likewise.
+	(Mappings::insert_attribute_proc_macro_invocation): Likewise.
+	(Mappings::lookup_attribute_proc_macro_invocation): Likewise.
+	* util/rust-hir-map.h: Likewise with function prototypes.
+	* util/rust-proc-macro-invocation.h: Removed.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h: Add new constructor for SimplePath from an
+	identifier.
+	* expand/rust-expand-visitor.cc (get_traits_to_derive): Add
+	conversion.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-macro-expand.cc (MacroExpander::import_proc_macros):
+	Remove function.
+	* expand/rust-macro-expand.h (struct MacroExpander): Remove
+	import_proc_macro function.
+	* util/rust-hir-map.cc (Mappings::insert_derive_proc_macro_def):
+	Add a function to insert a derive proc macro definition.
+	(Mappings::insert_bang_proc_macro): Remove function.
+	(Mappings::insert_bang_proc_macro_def): Add function to insert a
+	bang proc macro definition.
+	(Mappings::insert_attribute_proc_macro_def): Likewise with
+	attribute proc macros.
+	(Mappings::lookup_derive_proc_macro_def): Add a function to
+	lookup a defined derive proc macro definition.
+	(Mappings::lookup_bang_proc_macro): Remove function.
+	(Mappings::lookup_bang_proc_macro_def): Add a function to lookup
+	a bang proc macro definition.
+	(Mappings::lookup_attribute_proc_macro_def): Add a function to
+	lookup an attribute prod macro definition.
+	(Mappings::insert_derive_proc_macro_invocation): Add a function
+	to insert a derive proc macro invocation.
+	(Mappings::lookup_derive_proc_macro_invocation): Add a function
+	to lookup a derive proc macro invocation.
+	(Mappings::insert_bang_proc_macro_invocation): Add a function to
+	insert a bang proc macro invocation.
+	(Mappings::lookup_bang_proc_macro_invocation): Add a function to
+	lookup a bang proc macro invocation.
+	(Mappings::insert_attribute_proc_macro_invocation): Add a
+	function to insert an attribute proc macro invocation.
+	(Mappings::lookup_attribute_proc_macro_invocation): Add a
+	function to lookup an attribute proc macro invocation.
+	* util/rust-hir-map.h: Add different proc macro mappings
+	and change function prototypes.
+	* expand/rust-expand-visitor.cc (get_traits_to_derive): Return a
+	vector of SimplePath instead.
+	(derive_item): Accept SimplePath instead of a string.
+	* ast/rust-ast.h: Add common ProcMacroInvocable interface to
+	Identifiers and SimplePath nodes.
+	* ast/rust-ast.cc: Add const modifier.
+	* ast/rust-macro.h: Change path and identifier getters.
+	* ast/rust-path.h: Change return type to reference.
+	* util/rust-proc-macro-invocation.h: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-attributes.h (RUST_ATTRIBUTES_H): Add missing header
+	guard.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h (class MetaItem): Add MetaItem dispatch values.
+	* ast/rust-expr.h: Add LitExpr and PathLit dispatch.
+	* ast/rust-macro.h: Add remaining dispatch getters.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* metadata/rust-extern-crate.h: Add proc macro getter.
+	* rust-session-manager.cc (Session::load_extern_crate): Collect
+	mappings and create mappings.
+	* util/rust-hir-map.cc: Add insertion and lookup functions for
+	every mapping.
+	* util/rust-hir-map.h: Add function prototypes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* metadata/rust-imports.cc (Import::try_package_in_directory):
+	Add call to load macros before loading metadatas.
+	* expand/rust-proc-macro.cc: Return empty vector instead of
+	panicking on error.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* metadata/rust-import-archive.cc (Stream_concatenate::do_peek):
+	Remove deletion.
+	(Stream_concatenate::do_advance): Likewise.
+	(Import::find_archive_export_data): Replace with a smart
+	pointer.
+	* metadata/rust-imports.cc (add_search_path): Change return type
+	to smart pointer.
+	(Import::open_package): Likewise.
+	(Import::try_package_in_directory): Likewise.
+	(Import::find_export_data): Likewise.
+	(Import::find_object_export_data): Likewise.
+	(Import::Import): Change constructor to accept unique_ptr.
+	* metadata/rust-imports.h: Change constructor prototype.
+	* rust-session-manager.cc (Session::load_extern_crate): Change
+	pointer to smart pointer.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* metadata/rust-extern-crate.cc (ExternCrate::ExternCrate):
+	Change constructor to accept procedural macro vector.
+	* metadata/rust-extern-crate.h: Add vector of procecural macro
+	in extern crate.
+	* rust-session-manager.cc (Session::load_extern_crate): Add
+	argument to new constructor call.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* metadata/rust-imports.cc (add_search_path): Change prototype,
+	now return a pair of Stream and procedural macro vector.
+	(Import::open_package): Likewise.
+	(Import::try_package_in_directory): Likewise.
+	* metadata/rust-imports.h: Likewise.
+	* rust-session-manager.cc (Session::load_extern_crate):
+	Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* metadata/rust-imports.h: Make the function to load a given
+	file public.
+	* rust-session-manager.cc (Session::load_extern_crate): Change
+	path resolution depending on extern crate declaration in cli
+	arguments.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-ast-collector.h
+	(TokenCollector::visit):
+	Replace default argument with UNDEF_LOCATION.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-compile-base.cc: Replace Location with location_t.
+	* backend/rust-compile-base.h: Likewise.
+	* backend/rust-compile-block.cc: Likewise.
+	* backend/rust-compile-expr.cc: Likewise.
+	* backend/rust-compile-expr.h: Likewise.
+	* backend/rust-compile-extern.h: Likewise.
+	* backend/rust-compile-implitem.h: Likewise.
+	* backend/rust-compile-intrinsic.cc: Likewise.
+	* backend/rust-compile-item.h: Likewise.
+	* backend/rust-compile-pattern.h: Likewise.
+	* backend/rust-compile-resolve-path.cc: Likewise.
+	* backend/rust-compile-stmt.cc: Likewise.
+	* backend/rust-compile-type.cc: Likewise.
+	* backend/rust-compile.cc: Likewise.
+	* backend/rust-constexpr.cc: Likewise.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+	refactored and call error function.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-attributes.cc (AttributeChecker::visit): Add help
+	message.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-attributes.cc (AttributeChecker::visit): Add
+	attribute input check.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-attributes.cc (AttributeChecker::visit): Add
+	attribute check on functions.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (from_ident): Adapt code to new
+	constructor.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-proc-macro.cc (tokenstream_from_string): Add a
+	function that creates a tokenstream from a given string.
+	(load_macros_array): Add call to registration function.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lang.opt: Add option
+	* rust-session-manager.cc: Add option registration in session
+	target options.
+	* rust-session-manager.h (struct CompileOptions): Add new getter
+	for proc macros instead of a boolean.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* resolve/rust-forever-stack.h: New file.
+	* resolve/rust-forever-stack.hxx: New file.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* hir/rust-hir-dump.cc (convert_param_kind_to_str): New.
+	(convert_new_bind_type_to_str): New.
+	(convert_mut_to_str): New.
+	(Dump::go): New.
+	(Dump::put): New.
+	(Dump::begin): New.
+	(Dump::end): New.
+	(Dump::begin_field): New.
+	(Dump::end_field): New.
+	(Dump::put_field): New.
+	(Dump::visit_field): New.
+	(Dump::visit): Refactor.
+	(Dump::visit_collection): New.
+	(Dump::do_traititem): New.
+	(Dump::do_vis_item): New.
+	(Dump::do_functionparam): New.
+	(Dump::do_pathpattern): New.
+	(Dump::do_structexprstruct): New.
+	(Dump::do_expr): New.
+	(Dump::do_pathexpr): New.
+	(Dump::do_typepathsegment): New.
+	(Dump::do_typepathfunction): New.
+	(Dump::do_qualifiedpathtype): New.
+	(Dump::do_operatorexpr): New.
+	(Dump::do_mappings): New.
+	(Dump::do_inner_attrs): New.
+	(Dump::do_outer_attrs): New.
+	(Dump::do_baseloopexpr): New.
+	(Dump::do_ifletexpr): New.
+	(Dump::do_struct): New.
+	(Dump::do_enumitem): New.
+	(Dump::do_traitfunctiondecl): New.
+	(Dump::do_externalitem): New.
+	(Dump::do_namefunctionparam): New.
+	(Dump::do_stmt): New.
+	(Dump::do_type): New.
+	(Dump::do_item): New.
+	(Dump::do_tuplefield): New.
+	(Dump::do_structfield): New.
+	(Dump::do_genericargs): New.
+	(Dump::do_maybenamedparam): New.
+	* hir/rust-hir-dump.h: Refactor.
+	* hir/tree/rust-hir-item.h (enum_to_str): New.
+	* hir/tree/rust-hir-type.h (enum_to_str): New.
+	* hir/tree/rust-hir.cc (enum_to_str): New.
+	* util/rust-common.h (enum_to_str): New.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+	    Matthew Jasper  <mjjasper1@gmail.com>
+
+	* Make-lang.in: Add `rust-rib.cc` object.
+	* resolve/rust-rib.cc: New file.
+	* resolve/rust-rib.h: New file.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-ast.h: Replace Location with location_t.
+	* ast/rust-expr.h: Likewise.
+	* ast/rust-item.h: Likewise.
+	* ast/rust-macro.h: Likewise.
+	* ast/rust-path.h: Likewise.
+	* ast/rust-pattern.h: Likewise.
+	* ast/rust-stmt.h: Likewise.
+	* ast/rust-type.h: Likewise.
+	* hir/rust-ast-lower-base.h: Likewise.
+	* hir/tree/rust-hir-expr.h: Likewise.
+	* hir/tree/rust-hir-item.h: Likewise.
+	* hir/tree/rust-hir-path.h: Likewise.
+	* hir/tree/rust-hir-pattern.h: Likewise.
+	* hir/tree/rust-hir-stmt.h: Likewise.
+	* hir/tree/rust-hir-type.h: Likewise.
+	* hir/tree/rust-hir.h: Likewise.
+	* lex/rust-token.h: Likewise.
+	* resolve/rust-ast-resolve-pattern.h: Likewise.
+	* typecheck/rust-hir-trait-reference.h: Likewise.
+	* typecheck/rust-tyty-bounds.h: Likewise.
+	* typecheck/rust-tyty-call.h: Likewise.
+	* typecheck/rust-tyty-subst.h: Likewise.
+	* typecheck/rust-tyty-util.h: Likewise.
+	* typecheck/rust-tyty.h: Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-ast-collector.cc: Replace Location with location_t.
+	* ast/rust-ast.cc: Likewise.
+	* ast/rust-ast.h: Likewise.
+	* ast/rust-expr.h: Likewise.
+	* ast/rust-item.h: Likewise.
+	* ast/rust-macro.h: Likewise.
+	* ast/rust-path.cc: Likewise.
+	* ast/rust-path.h: Likewise.
+	* ast/rust-pattern.h: Likewise.
+	* ast/rust-stmt.h: Likewise.
+	* ast/rust-type.h: Likewise.
+	* backend/rust-compile-base.cc: Likewise.
+	* backend/rust-compile-base.h: Likewise.
+	* backend/rust-compile-block.cc: Likewise.
+	* backend/rust-compile-expr.cc: Likewise.
+	* backend/rust-compile-expr.h: Likewise.
+	* backend/rust-compile-fnparam.cc: Likewise.
+	* backend/rust-compile-fnparam.h: Likewise.
+	* backend/rust-compile-intrinsic.cc: Likewise.
+	* backend/rust-compile-pattern.cc: Likewise.
+	* backend/rust-compile-resolve-path.h: Likewise.
+	* backend/rust-compile.cc: Likewise.
+	* checks/errors/rust-const-checker.cc: Likewise.
+	* checks/errors/rust-const-checker.h: Likewise.
+	* checks/errors/rust-unsafe-checker.cc: Likewise.
+	* checks/errors/rust-unsafe-checker.h: Likewise.
+	* expand/rust-macro-builtins.cc: Likewise.
+	* expand/rust-macro-expand.h: Likewise.
+	* hir/rust-ast-lower-base.h: Likewise.
+	* hir/rust-ast-lower-implitem.h: Likewise.
+	* hir/rust-ast-lower-item.cc: Likewise.
+	* hir/tree/rust-hir-expr.h: Likewise.
+	* hir/tree/rust-hir-item.h: Likewise.
+	* hir/tree/rust-hir-path.h: Likewise.
+	* hir/tree/rust-hir-pattern.h: Likewise.
+	* hir/tree/rust-hir-stmt.h: Likewise.
+	* hir/tree/rust-hir-type.h: Likewise.
+	* hir/tree/rust-hir.cc: Likewise.
+	* hir/tree/rust-hir.h: Likewise.
+	* lex/rust-token.h: Likewise.
+	* metadata/rust-extern-crate.cc: Likewise.
+	* metadata/rust-extern-crate.h: Likewise.
+	* parse/rust-parse-impl.h: Likewise.
+	* parse/rust-parse.h: Likewise.
+	* resolve/rust-ast-resolve-expr.cc: Likewise.
+	* resolve/rust-ast-resolve-implitem.h: Likewise.
+	* resolve/rust-ast-resolve-pattern.h: Likewise.
+	* resolve/rust-ast-resolve-stmt.h: Likewise.
+	* resolve/rust-ast-resolve-toplevel.h: Likewise.
+	* resolve/rust-ast-resolve-type.h: Likewise.
+	* resolve/rust-name-resolver.cc: Likewise.
+	* resolve/rust-name-resolver.h: Likewise.
+	* rust-diagnostics.cc: Likewise.
+	* rust-diagnostics.h: Likewise.
+	* rust-gcc.cc: Likewise.
+	* rust-session-manager.cc: Likewise.
+	* rust-session-manager.h: Likewise.
+	* typecheck/rust-casts.cc: Likewise.
+	* typecheck/rust-casts.h: Likewise.
+	* typecheck/rust-coercion.cc: Likewise.
+	* typecheck/rust-coercion.h: Likewise.
+	* typecheck/rust-hir-path-probe.cc: Likewise.
+	* typecheck/rust-hir-path-probe.h: Likewise.
+	* typecheck/rust-hir-trait-reference.cc: Likewise.
+	* typecheck/rust-hir-trait-reference.h: Likewise.
+	* typecheck/rust-hir-trait-resolve.cc: Likewise.
+	* typecheck/rust-hir-type-check-base.cc: Likewise.
+	* typecheck/rust-hir-type-check-base.h: Likewise.
+	* typecheck/rust-hir-type-check-item.cc: Likewise.
+	* typecheck/rust-hir-type-check-item.h: Likewise.
+	* typecheck/rust-hir-type-check-path.cc: Likewise.
+	* typecheck/rust-hir-type-check-pattern.cc: Likewise.
+	* typecheck/rust-hir-type-check-pattern.h: Likewise.
+	* typecheck/rust-hir-type-check-type.cc: Likewise.
+	* typecheck/rust-hir-type-check-type.h: Likewise.
+	* typecheck/rust-hir-type-check.cc: Likewise.
+	* typecheck/rust-hir-type-check.h: Likewise.
+	* typecheck/rust-substitution-mapper.cc: Likewise.
+	* typecheck/rust-substitution-mapper.h: Likewise.
+	* typecheck/rust-type-util.cc: Likewise.
+	* typecheck/rust-typecheck-context.cc: Likewise.
+	* typecheck/rust-tyty-bounds.cc: Likewise.
+	* typecheck/rust-tyty-call.h: Likewise.
+	* typecheck/rust-tyty-subst.cc: Likewise.
+	* typecheck/rust-tyty-subst.h: Likewise.
+	* typecheck/rust-tyty-util.cc: Likewise.
+	* typecheck/rust-tyty-util.h: Likewise.
+	* typecheck/rust-tyty.cc: Likewise.
+	* typecheck/rust-tyty.h: Likewise.
+	* typecheck/rust-unify.cc: Likewise.
+	* typecheck/rust-unify.h: Likewise.
+	* util/rust-hir-map.cc: Likewise.
+	* util/rust-hir-map.h: Likewise.
+	* util/rust-identifier.h: Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-gcc.cc
+	(Gcc_backend::debug): Move out of class declaration.
+	(Gcc_backend::get_identifier_node): Likewise.
+	(Gcc_backend::wchar_type): Likewise.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
+	called error function.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-linemap.h (Linemap::predeclared_location): Remove.
+	* backend/rust-compile-type.cc:
+	Replace Linemap::predeclared_location with BUILTINS_LOCATION.
+	* resolve/rust-name-resolver.cc: Likewise.
+	* typecheck/rust-hir-type-check-type.cc: Likewise.
+	* typecheck/rust-tyty.cc: Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-gcc.h: Add include guard.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust-system.h (rust_unreachable): Change definition to fancy_abort
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Use rust_unreachable
+	instead of gcc_unreachable.
+	(get_delimiters): Likewise.
+	* ast/rust-ast-dump.h: Likewise.
+	* ast/rust-ast-formatting.cc (get_string_in_delims): Likewise.
+	(get_mode_dump_desc): Likewise.
+	* ast/rust-ast.cc (Visibility::as_string): Likewise.
+	(UseTreeGlob::as_string): Likewise.
+	* ast/rust-ast.h: Likewise.
+	* ast/rust-macro.h: Likewise.
+	* ast/rust-path.h: Likewise.
+	* backend/rust-compile-expr.cc (sort_tuple_patterns): Likewise.
+	(CompileExpr::visit): Likewise.
+	(CompileExpr::generate_closure_fntype): Likewise.
+	* backend/rust-compile-intrinsic.cc (op_with_overflow_inner): Likewise.
+	* backend/rust-compile-pattern.cc (CompilePatternBindings::visit): Likewise.
+	(CompilePatternLet::visit): Likewise.
+	* backend/rust-constexpr.cc (base_field_constructor_elt): Likewise.
+	(eval_array_reference): Likewise.
+	(label_matches): Likewise.
+	(eval_store_expression): Likewise.
+	(eval_call_expression): Likewise.
+	(build_data_member_initialization): Likewise.
+	(array_index_cmp): Likewise.
+	(get_array_or_vector_nelts): Likewise.
+	(eval_bit_field_ref): Likewise.
+	(eval_loop_expr): Likewise.
+	(potential_constant_expression_1): Likewise.
+	* backend/rust-mangle.cc (v0_simple_type_prefix): Likewise.
+	(v0_type_prefix): Likewise.
+	(v0_mangle_item): Likewise.
+	(Mangler::mangle_item): Likewise.
+	* backend/rust-tree.cc (convert_to_void): Likewise.
+	(type_memfn_quals): Likewise.
+	(rs_tree_equal): Likewise.
+	(fold_offsetof): Likewise.
+	(fold_builtin_source_location): Likewise.
+	(lvalue_error): Likewise.
+	* backend/rust-tree.h (struct named_decl_hash): Likewise.
+	(struct named_label_hash): Likewise.
+	* checks/errors/privacy/rust-visibility-resolver.cc
+	(VisibilityResolver::resolve_visibility): Likewise.
+	(VisibilityResolver::visit): Likewise.
+	* checks/errors/rust-const-checker.cc (ConstChecker::ctx_to_str): Likewise.
+	* checks/errors/rust-feature.cc (Feature::create): Likewise.
+	* expand/rust-expand-visitor.cc (get_traits_to_derive): Likewise.
+	(derive_item): Likewise.
+	(expand_item_attribute): Likewise.
+	(expand_stmt_attribute): Likewise.
+	* expand/rust-macro-expand.cc (MacroExpander::match_matcher): Likewise.
+	(MacroExpander::match_repetition): Likewise.
+	(transcribe_context): Likewise.
+	(MacroExpander::import_proc_macros): Likewise.
+	(MacroExpander::parse_proc_macro_output): Likewise.
+	* expand/rust-macro-expand.h: Likewise.
+	* expand/rust-macro-invoc-lexer.h: Likewise.
+	* expand/rust-macro-substitute-ctx.cc (SubstituteCtx::substitute_token): Likewise.
+	* expand/rust-proc-macro-invoc-lexer.h: Likewise.
+	* expand/rust-proc-macro.cc (load_macros): Likewise.
+	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_generic_args): Likewise.
+	(ASTLoweringBase::lower_literal): Likewise.
+	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
+	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Likewise.
+	* hir/rust-ast-lower-type.cc (ASTLoweringType::visit): Likewise.
+	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
+	* hir/tree/rust-hir.cc (get_string_in_delims): Likewise.
+	(Visibility::as_string): Likewise.
+	(UseTreeGlob::as_string): Likewise.
+	(CompoundAssignmentExpr::as_string): Likewise.
+	(ArithmeticOrLogicalExpr::as_string): Likewise.
+	* lex/rust-lex.cc (Lexer::parse_byte_string): Likewise.
+	(Lexer::parse_string): Likewise.
+	* lex/rust-token.cc (RS_TOKEN): Likewise.
+	* parse/rust-parse-impl.h (Parser::parse_simple_path_segment): Likewise.
+	(Parser::parse_path_ident_segment): Likewise.
+	(Parser::parse_attr_input): Likewise.
+	(Parser::parse_inherent_impl_item): Likewise.
+	(Parser::parse_trait_impl_item): Likewise.
+	(Parser::parse_type_path_segment): Likewise.
+	(Parser::parse_reference_type): Likewise.
+	(get_lbp_for_comparison_expr): Likewise.
+	* parse/rust-parse.cc (peculiar_fragment_match_compatible): Likewise.
+	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Likewise.
+	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit): Likewise.
+	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): Likewise.
+	(ResolveTypeToCanonicalPath::visit): Likewise.
+	(ResolveGenericArgs::resolve_disambiguated_generic): Likewise.
+	* rust-gcc.cc (operator_to_tree_code): Likewise.
+	(fetch_overflow_builtins): Likewise.
+	(Gcc_backend::non_zero_size_type): Likewise.
+	(Gcc_backend::convert_tree): Likewise.
+	* rust-lang.cc (grs_langhook_type_for_mode): Likewise.
+	(grs_langhook_global_bindings_p): Likewise.
+	(grs_langhook_pushdecl): Likewise.
+	(grs_langhook_getdecls): Likewise.
+	(convert): Likewise.
+	* typecheck/rust-autoderef.h: Likewise.
+	* typecheck/rust-hir-path-probe.cc: Likewise.
+	* typecheck/rust-hir-trait-reference.cc (TraitItemReference::get_tyty): Likewise.
+	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal): Likewise.
+	* typecheck/rust-hir-type-check-expr.cc: Likewise.
+	* typecheck/rust-hir-type-check-expr.h: Likewise.
+	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItem::visit): Likewise.
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
+	* typecheck/rust-hir-type-check-stmt.h: Likewise.
+	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): Likewise.
+	* typecheck/rust-substitution-mapper.h: Likewise.
+	* typecheck/rust-typecheck-context.cc (TypeCheckContextItem::get_context_type): Likewise.
+	* typecheck/rust-tyty-call.h: Likewise.
+	* typecheck/rust-tyty.cc (TypeKindFormat::to_string): Likewise.
+	(BaseType::monomorphized_clone): Likewise.
+	(VariantDef::variant_type_string): Likewise.
+	(ClosureType::handle_substitions): Likewise.
+	(IntType::as_string): Likewise.
+	(UintType::as_string): Likewise.
+	(FloatType::as_string): Likewise.
+	* typecheck/rust-unify.cc (UnifyRules::expect_projection): Likewise.
+	* util/rust-token-converter.cc (convert): Likewise.
+	(from_literal): Likewise.
+	(from_group): Likewise.
+	(from_tokentree): Likewise.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* checks/errors/rust-feature-gate.cc (FeatureGate::gate):
+	called error function.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* backend/rust-compile-intrinsic.cc (Intrinsics::compile):
+	called error function.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* checks/errors/rust-unsafe-checker.cc (check_unsafe_call):
+	called error function.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-location.h
+	(typedef RichLocation): Remove.
+	* expand/rust-macro-expand.cc: Replace RichLocation with rich_location.
+	* hir/rust-ast-lower-base.cc: Likewise.
+	* resolve/rust-ast-resolve-implitem.h: Likewise.
+	* resolve/rust-ast-resolve-stmt.h: Likewise.
+	* resolve/rust-ast-resolve-toplevel.h: Likewise.
+	* rust-diagnostics.cc: Likewise.
+	* rust-diagnostics.h: Likewise.
+	* rust-session-manager.cc: Likewise.
+	* typecheck/rust-casts.cc: Likewise.
+	* typecheck/rust-coercion.cc: Likewise.
+	* typecheck/rust-hir-inherent-impl-overlap.h: Likewise.
+	* typecheck/rust-hir-path-probe.h: Likewise.
+	* typecheck/rust-hir-trait-reference.cc: Likewise.
+	* typecheck/rust-hir-type-check-expr.cc: Likewise.
+	* typecheck/rust-hir-type-check-implitem.cc: Likewise.
+	* typecheck/rust-hir-type-check-item.cc: Likewise.
+	* typecheck/rust-hir-type-check-pattern.cc: Likewise.
+	* typecheck/rust-tyty-cmp.h: Likewise.
+	* typecheck/rust-tyty-subst.cc: Likewise.
+	* typecheck/rust-tyty.cc: Likewise.
+	* typecheck/rust-unify.cc: Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* lex/rust-lex.cc
+	(Lexer::start_line): Use linemap_line_start.
+	* rust-linemap.cc
+	(Linemap::start_line): Remove.
+	* rust-linemap.h
+	(Linemap::start_line): Remove.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-linemap.cc
+	(RichLocation::RichLocation): Remove.
+	(RichLocation::~RichLocation): Remove.
+	(RichLocation::add_range): Remove.
+	(RichLocation::add_fixit_insert_before): Remove.
+	(RichLocation::add_fixit_insert_after): Remove.
+	* rust-location.h
+	(class RichLocation): Remove.
+	* rust-diagnostics.cc
+	(rust_be_error_at): Remove RichLocation::get invocation.
+	* expand/rust-macro-expand.cc: Fix RichLocation constructor.
+	* hir/rust-ast-lower-base.cc: Likewise.
+	* resolve/rust-ast-resolve-implitem.h: Likewise.
+	* resolve/rust-ast-resolve-stmt.h: Likewise.
+	* resolve/rust-ast-resolve-toplevel.h: Likewise.
+	* rust-session-manager.cc: Likewise.
+	* typecheck/rust-casts.cc: Likewise.
+	* typecheck/rust-coercion.cc: Likewise.
+	* typecheck/rust-hir-inherent-impl-overlap.h: Likewise.
+	* typecheck/rust-hir-path-probe.h: Likewise.
+	* typecheck/rust-hir-trait-reference.cc: Likewise.
+	* typecheck/rust-hir-type-check-expr.cc: Likewise.
+	* typecheck/rust-hir-type-check-implitem.cc: Likewise.
+	* typecheck/rust-hir-type-check-item.cc: Likewise.
+	* typecheck/rust-hir-type-check-pattern.cc: Likewise.
+	* typecheck/rust-tyty-cmp.h: Likewise.
+	* typecheck/rust-tyty-subst.cc: Likewise.
+	* typecheck/rust-tyty.cc: Likewise.
+	* typecheck/rust-unify.cc: Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* lex/rust-lex.cc
+	(Lexer::get_current_location): Use linemap_position_for_column.
+	* rust-session-manager.cc
+	(Session::handle_crate_name): Likewise.
+	* rust-linemap.cc
+	(Linemap::get_location): Remove.
+	* rust-linemap.h
+	(Linemap::get_location): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lex/rust-token.cc (escape_special_chars): Add a function that
+	escape a given string.
+	(Token::as_string): Add call to escape function for string/char
+	representations.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* hir/tree/rust-hir-type.h (MaybeNamedParam::get_type): Remove
+	rust_assert.
+	(BareFunctionType::get_return_type): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* backend/rust-compile-intrinsic.cc (offset_handler): Remove
+	braces.
+	(sizeof_handler): Likewise.
+	(transmute_handler): Likewise.
+	(rotate_handler): Likewise.
+	(wrapping_op_handler_inner): Likewise.
+	(op_with_overflow_inner): Likewise.
+	(atomic_load_handler_inner): Likewise.
+	(unchecked_op_inner): Likewise.
+	(uninit_handler): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h: Add virtual destructor.
+	* expand/rust-macro-expand.h: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* hir/tree/rust-hir-full-decls.h (struct Crate): Change to
+	class.
+	(class Crate): Likewise.
+	(struct StructField): Likewise.
+	(class StructField): Likewise.
+	(struct TupleField): Likewise.
+	(class TupleField): Likewise.
+	(struct TraitFunctionDecl): Likewise.
+	(class TraitFunctionDecl): Likewise.
+	* rust-session-manager.h (struct Crate): Likewise.
+	(class Crate): Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-expr.h
+	(MetaItemPathLit::get_locus): Remove copy construction.
+	* backend/rust-constexpr.cc
+	(eval_constant_expression): Likewise.
+	(is_valid_constexpr_fn): Likewise.
+	* util/rust-token-converter.cc
+	(convert): Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* lex/rust-lex.cc
+	(Lexer::dump_and_skip): Use location_to_string.
+	* rust-linemap.cc
+	(Linemap::to_string): Move to...
+	(Linemap::location_to_string): ... here.
+	* rust-linemap.h
+	(Linemap::to_string): Remove.
+	(Linemap::location_to_string): Remove definition.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* hir/tree/rust-hir-expr.h (TypeCastExpr::get_casted_expr): Remove
+	assert in accessor.
+	(TypeCastExpr::get_type_to_convert_to): Likewise.
+	(CompoundAssignmentExpr::get_left_expr): Likewise.
+	(CompoundAssignmentExpr::get_right_expr): Likewise.
+	(GroupedExpr::get_expr_in_parens): Likewise.
+	(TupleIndexExpr::get_tuple_expr): Likewise.
+	(FieldAccessExpr::get_receiver_expr): Likewise.
+	(ClosureParam::get_pattern): Likewise.
+	(ClosureParam::get_type): Likewise.
+	(ExprType::get_return_type): Likewise.
+	(IfLetExpr::get_scrutinee_expr): Likewise.
+	(MatchArm::get_guard_expr): Likewise.
+	(MatchExpr::get_scrutinee_expr): Likewise.
+	* hir/tree/rust-hir-item.h (TypeParam::get_type): Likewise.
+	(SelfParam::get_type): Likewise.
+	(Function::get_return_type): Likewise.
+	(TypeAlias::get_type_aliased): Likewise.
+	(StructField::get_field_type): Likewise.
+	(TraitFunctionDecl::get_block_expr): Likewise.
+	(ImplBlock::get_trait_ref): Likewise.
+	* hir/tree/rust-hir-path.h (ConstGenericArg::get_expression): New.
+	(TypePathFunction::get_return_type): Remove assert in accessor.
+	(QualifiedPathType::get_trait): Likewise.
+	* hir/tree/rust-hir-pattern.h (PatternType::get_lower_bound): Likewise.
+	(PatternType::get_upper_bound): Likewise.
+	(ReferencePattern::get_referenced_pattern): Likewise.
+	* hir/tree/rust-hir.h (ConstGenericParam::get_default_expression): Likewise.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* hir/rust-ast-lower-base.cc (struct_field_name_exists):
+	called error function.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-diagnostics.cc
+	(rust_be_error_at): Add function accepting location_t and ErrorCode.
+	(rust_error_at): Likewise.
+	* rust-diagnostics.h
+	(rust_error_at): Likewise.
+	(rust_be_error_at): Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-linemap.cc
+	(class Gcc_linemap): Remove.
+	(Gcc_linemap::start_file): Move to...
+	(Linemap::start_file): ... here.
+	(Gcc_linemap::to_string): Move to...
+	(Linemap::to_string): ... here.
+	(Gcc_linemap::stop): Move to...
+	(Linemap::stop): ... here.
+	(Gcc_linemap::start_line): Move to...
+	(Linemap::start_line): ... here.
+	(Gcc_linemap::get_location): Move to...
+	(Linemap::get_location): ... here.
+	(rust_get_linemap): Use Linemap.
+	* rust-linemap.h
+	(Linemap::in_file_): New field from Gcc_linemap.
+	(Linemap::Linemap): Initialize in_file_.
+	(Linemap::~Linemap): Make non-virtual.
+	(Linemap::start_file): Likewise.
+	(Linemap::start_line): Likewise.
+	(Linemap::get_location): Likewise.
+	(Linemap::stop): Likewise.
+	(Linemap::to_string): Likewise.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* Make-lang.in: Remove rust-optional-test.cc's object file
+	* ast/rust-macro.h: Remove use of Rust::Optional
+	* backend/rust-compile-base.cc
+	(HIRCompileBase::resolve_method_address): Likewise.
+	* checks/errors/privacy/rust-privacy-reporter.cc
+	(PrivacyReporter::check_for_privacy_violation): Likewise.
+	(PrivacyReporter::visit): Likewise.
+	* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
+	* checks/errors/rust-feature-gate.cc (FeatureGate::check): Likewise.
+	* checks/errors/rust-feature.cc (Feature::create): Likewise.
+	(Feature::as_name): Likewise.
+	* checks/errors/rust-feature.h: Likewise.
+	* expand/rust-macro-builtins.cc: Likewise.
+	* lex/rust-lex.cc (Lexer::Lexer): Likewise.
+	(Lexer::skip_token): Likewise.
+	(Lexer::dump_and_skip): Likewise.
+	* lex/rust-lex.h: Likewise.
+	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Likewise.
+	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): Likewise.
+	* rust-lang.cc (run_rust_tests): Likewise.
+	* rust-session-manager.cc (Session::compile_crate): Likewise.
+	(TargetOptions::dump_target_options): Likewise.
+	* rust-session-manager.h (struct TargetOptions): Likewise.
+	* util/rust-hir-map.cc (Mappings::lookup_module_children): Likewise.
+	(Mappings::lookup_module_chidren_items): Likewise.
+	(Mappings::lookup_module_child): Likewise.
+	(Mappings::lookup_parent_module): Likewise.
+	* util/rust-hir-map.h (RUST_HIR_MAP_H): Likewise.
+	* util/rust-optional-test.cc: Removed.
+	* util/rust-optional.h: Removed.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-linemap.h (Linemap::unknown_location): Remove.
+	* ast/rust-ast.cc:
+	Replace Linemap::unknown_location with UNKNOWN_LOCATION.
+	* ast/rust-path.cc: Likewise.
+	* hir/tree/rust-hir.cc: Likewise.
+	* metadata/rust-imports.cc: Likewise.
+	* parse/rust-parse-impl.h: Likewise.
+	* parse/rust-parse.h: Likewise.
+	* rust-backend.h: Likewise.
+	* rust-diagnostics.cc: Likewise.
+	* rust-session-manager.cc: Likewise.
+	* typecheck/rust-tyty.cc: Likewise.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* resolve/rust-ast-verify-assignee.h: called error function.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-tyty-call.cc (emit_unexpected_argument_error):
+	Refactored invalid number of argument into one function.
+	(TypeCheckCallExpr::visit): called refactored function.
+	(TypeCheckMethodCallExpr::check): likewise.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* util/expected.h: Adapt class to GCC requirements.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* util/expected.h: New file.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* util/optional.h: Adapt for GCC.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* util/optional.h: New file.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-location.h (UNDEF_LOCATION): New.
+	* ast/rust-ast-collector.cc: Replace Location () with UNDEF_LOCATION.
+	* ast/rust-ast-fragment.cc: Likewise.
+	* ast/rust-ast.h: Likewise.
+	* ast/rust-expr.h: Likewise.
+	* ast/rust-item.h: Likewise.
+	* ast/rust-macro.h: Likewise.
+	* ast/rust-path.h: Likewise.
+	* ast/rust-type.h: Likewise.
+	* backend/rust-compile-expr.cc: Likewise.
+	* backend/rust-compile-extern.h: Likewise.
+	* backend/rust-compile-implitem.h: Likewise.
+	* backend/rust-compile-intrinsic.cc: Likewise.
+	* backend/rust-compile-item.h: Likewise.
+	* backend/rust-compile.cc: Likewise.
+	* backend/rust-constexpr.cc: Likewise.
+	* expand/rust-expand-visitor.cc: Likewise.
+	* expand/rust-macro-expand.cc: Likewise.
+	* expand/rust-macro-expand.h: Likewise.
+	* expand/rust-macro-invoc-lexer.cc: Likewise.
+	* expand/rust-proc-macro-invoc-lexer.cc: Likewise.
+	* expand/rust-proc-macro.cc: Likewise.
+	* hir/tree/rust-hir-expr.h: Likewise.
+	* hir/tree/rust-hir-item.h: Likewise.
+	* hir/tree/rust-hir-path.h: Likewise.
+	* hir/tree/rust-hir-type.h: Likewise.
+	* hir/tree/rust-hir.h: Likewise.
+	* lex/rust-lex.cc: Likewise.
+	* metadata/rust-export-metadata.cc: Likewise.
+	* parse/rust-parse-impl.h: Likewise.
+	* resolve/rust-ast-resolve-item.cc: Likewise.
+	* resolve/rust-ast-resolve.cc: Likewise.
+	* rust-diagnostics.h: Likewise.
+	* rust-session-manager.cc: Likewise.
+	* typecheck/rust-autoderef.cc: Likewise.
+	* typecheck/rust-coercion.cc: Likewise.
+	* typecheck/rust-hir-dot-operator.cc: Likewise.
+	* typecheck/rust-hir-path-probe.cc: Likewise.
+	* typecheck/rust-hir-trait-reference.cc: Likewise.
+	* typecheck/rust-hir-trait-reference.h: Likewise.
+	* typecheck/rust-hir-type-check-expr.cc: Likewise.
+	* typecheck/rust-hir-type-check-implitem.cc: Likewise.
+	* typecheck/rust-hir-type-check-type.cc: Likewise.
+	* typecheck/rust-hir-type-check.cc: Likewise.
+	* typecheck/rust-tyty-bounds.cc: Likewise.
+	* typecheck/rust-tyty-subst.cc: Likewise.
+	* typecheck/rust-tyty.cc: Likewise.
+	* util/rust-hir-map.cc: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix abit
+	output format.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix
+	external item trailing semicolon and outer attributes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Output
+	outer attributes on external functions.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix method
+	qualifier output.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Add where
+	clause.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Add outer
+	attributes to collector output.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Add
+	variadics in collector output.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Add
+	generics.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix generic
+	output.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Reformat
+	trait impl block.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Output
+	generic in inherent impl.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-dump.cc (Dump::require_spacing): Change dollar
+	spacing rule.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Change
+	formatting.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix trait
+	impl block output.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix binding
+	args.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Output
+	function qualifiers after visibility.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix self
+	param output.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-dump.cc (Dump::require_spacing): Add a rule to
+	remove spaces around dots and after references.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix several
+	token collection rules.
+	* ast/rust-ast-dump.cc (Dump::require_spacing): Add spacing rule
+	for comma.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-invoc-lexer.h
+	(class MacroInvocLexerBase): New.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-builtins.cc
+	(source_relative_path): Use LOCATION_FILE.
+	(MacroBuiltin::file_handler): Likewise.
+	(MacroBuiltin::column_handler): Use LOCATION_COLUMN.
+	(MacroBuiltin::line_handler): Use LOCATION_LINE.
+	* rust-linemap.cc
+	(Gcc_linemap::location_file): Remove.
+	(Gcc_linemap::location_line): Remove.
+	(Gcc_linemap::location_column): Remove.
+	* rust-linemap.h
+	(Linemap::location_file): Remove.
+	(Linemap::location_line): Remove.
+	(Linemap::location_column): Remove.
+	(Linemap::location_to_file): Remove.
+	(Linemap::location_to_line): Remove.
+	(Linemap::location_to_column): Remove.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
+	called error function and changed error message
+	similiar to rustc.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-linemap.cc
+	(Gcc_linemap::get_unknown_location): Remove.
+	(Gcc_linemap::get_predeclared_location): Remove.
+	(Gcc_linemap::is_predeclared): Remove.
+	(Gcc_linemap::is_unknown): Remove.
+	* rust-linemap.h
+	(Linemap::get_predeclared_location): Remove.
+	(Linemap::get_unknown_location): Remove.
+	(Linemap::is_predeclared): Remove.
+	(Linemap::is_unknown): Remove.
+	(Linemap::predeclared_location): Use BUILTINS_LOCATION.
+	(Linemap::unknown_location): Use UNKNOWN_LOCATION.
+	(Linemap::is_predeclared_location): Remove.
+	(Linemap::is_unknown_location): Remove.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit):
+	called error function
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve):
+	called error function.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* lex/rust-lex.cc (Lexer::input_source_is_valid_utf8): New method of `Lexer`.
+	* lex/rust-lex.h: Likewise.
+	* rust-session-manager.cc (Session::compile_crate): Add error.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-expand.cc
+	(transcribe_expression): Skip trailing semicolon.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-item.cc: called error function.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* ast/rust-ast.h: Modify constructors of `Rust::Identifier`
+	* ast/rust-pattern.h: Likewise.
+	* hir/tree/rust-hir-item.h: Likewise.
+	* parse/rust-parse-impl.h (Parser::parse_macro_rules_def): Likewise.
+	(Parser::parse_decl_macro_def): Likewise.
+	(Parser::parse_macro_match_fragment): Likewise.
+	(Parser::parse_module): Likewise.
+	(Parser::parse_use_tree): Likewise.
+	(Parser::parse_function): Likewise.
+	(Parser::parse_type_param): Likewise.
+	(Parser::parse_type_alias): Likewise.
+	(Parser::parse_struct): Likewise.
+	(Parser::parse_struct_field): Likewise.
+	(Parser::parse_enum): Likewise.
+	(Parser::parse_enum_item): Likewise.
+	(Parser::parse_union): Likewise.
+	(Parser::parse_static_item): Likewise.
+	(Parser::parse_trait): Likewise.
+	(Parser::parse_trait_item): Likewise.
+	(Parser::parse_trait_type): Likewise.
+	(Parser::parse_trait_const): Likewise.
+	(Parser::parse_external_item): Likewise.
+	(Parser::parse_generic_args_binding): Likewise.
+	(Parser::parse_method): Likewise.
+	(Parser::parse_maybe_named_param): Likewise.
+	(Parser::parse_identifier_pattern): Likewise.
+	(Parser::parse_struct_expr_field): Likewise.
+	(ResolveItem::visit): Likewise.
+	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItem::visit):Add comments
+	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit): Likewise.
+	* checks/lints/rust-lint-scan-deadcode.h: Fix error location
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-compile-base.cc
+	(HIRCompileBase::address_expression): Remove gcc_location method call.
+	(HIRCompileBase::indirect_expression): Likewise.
+	(HIRCompileBase::compile_constant_item): Likewise.
+	(HIRCompileBase::named_constant_expression): Likewise.
+	* backend/rust-compile-expr.cc
+	(CompileExpr::visit): Remove gcc_location method call, use UNKNOWN_LOCATION to initialize.
+	(CompileExpr::get_fn_addr_from_dyn): Remove gcc_location method call.
+	(CompileExpr::type_cast_expression): Likewise.
+	* backend/rust-compile-intrinsic.cc
+	(transmute_handler): Replace "Location ().gcc_location ()" with UNKNOWN_LOCATION.
+	(copy_nonoverlapping_handler): Likewise.
+	(prefetch_data_handler): Likewise.
+	(atomic_store_handler_inner): Likewise.
+	(atomic_load_handler_inner): Likewise.
+	* resolve/rust-ast-resolve-expr.cc
+	(ResolveExpr::visit): Remove gcc_location method call.
+	* rust-diagnostics.cc
+	(rust_be_error_at): Likewise.
+	(rust_be_warning_at): Likewise.
+	(rust_be_fatal_error): Likewise.
+	(rust_be_inform): Likewise.
+	* rust-diagnostics.h
+	(rust_sorry_at): Likewise.
+	* rust-gcc.cc
+	(Bvariable::get_tree): Likewise.
+	(Gcc_backend::fill_in_fields): Likewise.
+	(Gcc_backend::named_type): Likewise.
+	(Gcc_backend::real_part_expression): Likewise.
+	(Gcc_backend::imag_part_expression): Likewise.
+	(Gcc_backend::complex_expression): Likewise.
+	(Gcc_backend::convert_expression): Likewise.
+	(Gcc_backend::struct_field_expression): Likewise.
+	(Gcc_backend::compound_expression): Likewise.
+	(Gcc_backend::conditional_expression): Likewise.
+	(Gcc_backend::negation_expression): Likewise.
+	(Gcc_backend::arithmetic_or_logical_expression): Likewise.
+	(Gcc_backend::arithmetic_or_logical_expression_checked): Likewise.
+	(Gcc_backend::comparison_expression): Likewise.
+	(Gcc_backend::lazy_boolean_expression): Likewise.
+	(Gcc_backend::constructor_expression): Likewise.
+	(Gcc_backend::array_constructor_expression): Likewise.
+	(Gcc_backend::array_initializer): Likewise.
+	(Gcc_backend::array_index_expression): Likewise.
+	(Gcc_backend::call_expression): Likewise.
+	(Gcc_backend::assignment_statement): Likewise.
+	(Gcc_backend::return_statement): Likewise.
+	(Gcc_backend::exception_handler_statement): Likewise.
+	(Gcc_backend::if_statement): Likewise.
+	(Gcc_backend::loop_expression): Likewise.
+	(Gcc_backend::exit_expression): Likewise.
+	(Gcc_backend::block): Likewise.
+	(Gcc_backend::convert_tree): Likewise.
+	(Gcc_backend::global_variable): Likewise.
+	(Gcc_backend::local_variable): Likewise.
+	(Gcc_backend::parameter_variable): Likewise.
+	(Gcc_backend::static_chain_variable): Likewise.
+	(Gcc_backend::temporary_variable): Likewise.
+	(Gcc_backend::label): Likewise.
+	(Gcc_backend::goto_statement): Likewise.
+	(Gcc_backend::label_address): Likewise.
+	(Gcc_backend::function): Likewise.
+	* rust-linemap.cc
+	(Gcc_linemap::to_string): Likewise.
+	(Gcc_linemap::location_file): Likewise.
+	(Gcc_linemap::location_line): Likewise.
+	(Gcc_linemap::location_column): Likewise.
+	(Gcc_linemap::is_predeclared): Likewise.
+	(Gcc_linemap::is_unknown): Likewise.
+	(RichLocation::RichLocation): Likewise.
+	(RichLocation::add_range): Likewise.
+	(RichLocation::add_fixit_insert_before): Likewise.
+	(RichLocation::add_fixit_insert_after): Likewise.
+	* rust-location.h
+	(class Location): Replace with typedef.
+	(operator<): Remove.
+	(operator==): Remove.
+	(operator+): Remove.
+	(operator-): Remove.
+	* typecheck/rust-hir-trait-resolve.cc
+	(AssociatedImplTrait::setup_associated_types): Initialize Location with UNKNOWN_LOCATION.
+	* typecheck/rust-hir-type-check-stmt.cc
+	(TypeCheckStmt::visit): Likewise.
+	* util/rust-token-converter.cc
+	(convert): Remove gcc_location method call.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* hir/tree/rust-hir-expr.h (BorrowExpr::is_double_borrow): New.
+	(ArrayElemsCopied::get_elem_to_copy)
+	(ArrayElemsCopied::get_num_copies_expr): Return unique_ptr.
+	(CallExpr::get_fnexpr): Likewise.
+	(ReturnExpr::get_expr): Likewise.
+	(StructExprStructFields::get_struct_base): New.
+	(MethodCallExpr::has_params): New.
+	(ClosureExpr::has_params): New.
+	(BlockExpr::get_inner_attrs): New.
+	(WhileLoopExpr::get_patterns): New.
+	(ForLoopExpr::get_pattern): New.
+	(IfLetExpr::get_if_block): Return ref to unique_ptr.
+	(IfLetExprConseqElse::get_else_block): Likewise.
+	(MatchExpr::get_inner_attrs): New.
+	* hir/tree/rust-hir-item.h (Module::get_module_name): New.
+	(ExternCrate::get_referenced_crate)
+	(ExternCrate::get_as_clause_name): New.
+	(UseTreeGlob::get_glob_type, UseTreeGlob::get_path): New.
+	(UseTreeList::get_path_type, UseTreeList::get_path)
+	(UseTreeList::get_trees): New.
+	(TraitItemKind::get_expr): Remove assert. unique_ptr can
+	be "empty". Must be checked in caller.
+	* hir/tree/rust-hir-pattern.h (IdentifierPattern::get_is_ref)
+	(IdentifierPattern::get_to_bind): New.
+	(RangePatternBoundType::get_has_minus): New.
+	(RangePattern::get_has_ellipsis_syntax): New.
+	(StructPatternField::get_outer_attrs): New.
+	(StructPatternFieldTuplePat::get_index)
+	(StructPatternFieldTuplePat::get_tuple_pattern): New.
+	(StructPatternFieldIdent::get_has_ref): New.
+	* hir/tree/rust-hir-stmt.h (LetStmt::get_outer_attrs): New.
+	(LetStmt::get_type)
+	(LetStmt::get_init_expr, LetStmt::get_pattern): Return unique_ptr.
+	(ExprStmt::get_expr): Likewise.
+	* hir/tree/rust-hir-type.h (TraitBound::get_for_lifetimes): New.
+	(TraitBound::get_in_params): New.
+	(TraitBound::get_opening_question_mark): New.
+	(ImplTraitType::get_type_param_bounds): New.
+	(TraitObjectType::get_has_dyn): New.
+	(TraitBound::get_type_in_parens): New.
+	(ImplTraitTypeOneBound::get_trait_bound): New.
+	(BareFunctionType::get_for_lifetimes)
+	(BareFunctionType::get_is_variadic)
+	(BareFunctionType::get_function_qualifiers): New.
+	* hir/tree/rust-hir.h (class Expr): Virtual inherit from FullVisitable.
+	(class Pattern): Likewise.
+	(ConstGenericParam::get_name): New.
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Adjust call.
+	(TypeCheckExpr::resolve_fn_trait_call): Likewise.
+	* backend/rust-compile-expr.cc (CompileExpr::visit): Adjust call.
+	(CompileExpr::array_copied_expr): Likewise.
+	(CompileExpr::generate_possible_fn_trait_call): Likewise.
+	* backend/rust-compile-stmt.cc (CompileStmt::visit): Likewise.
+	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
+	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
+	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
+	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
+	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-path-probe.h: called error function
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args):
+	called error function
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* hir/tree/rust-hir-expr.h (class ArrayElems): Inherit from FullVisitable.
+	(class StructExprField): Likewise.
+	* hir/tree/rust-hir-item.h (class WhereClauseItem): Likewise.
+	(class UseTree): Likewise.
+	(UseTreeRebind::get_path, UseTreeRebind::get_identifier)
+	(UseTreeRebind::get_bind_type): New.
+	(UseDeclaration::get_use_tree): New.
+	(struct TraitFunctionDecl): Change struct to ...
+	(class TraitFunctionDecl): ... class.
+	(TraitFunctionDecl::get_where_clause): New.
+	(StructField::get_outer_attrs): New.
+	(struct TupleField): Change struct to ...
+	(class TupleField): ... class.
+	(TupleField::get_visibility, TupleField::get_outer_attrs): New.
+	* hir/tree/rust-hir-pattern.h (class TupleStructItems): Inherit
+	from FullVisitable.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* lex/rust-lex.cc (Lexer::build_token): Replace function call.
+	(Lexer::parse_string): Likewise.
+	(Lexer::parse_identifier_or_keyword): Likewise.
+	(Lexer::parse_raw_string): Likewise.
+	(Lexer::parse_char_or_lifetime): Likewise.
+	(Lexer::get_input_codepoint_length): Deleted.
+	(Lexer::peek_codepoint_input): Deleted.
+	(Lexer::skip_codepoint_input): Deleted.
+	* lex/rust-lex.h: Remove some methods and fields
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): track output
+	* util/rust-hir-map.cc (Mappings::lookup_trait_item_lang_item): new helper
+	* util/rust-hir-map.h: add prototype for helper
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-expr.cc (CompileExpr::generate_possible_fn_trait_call): use fnexpr
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::resolve_fn_trait_call): likewise
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): called rust_error_at
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* hir/tree/rust-hir.h (struct Crate): Rename struct into ...
+	(class Crate): ... class, and add get_items.
+	* backend/rust-compile.cc (CompileCrate::go): Adapt to visibility change of items.
+	* checks/errors/privacy/rust-privacy-check.cc (Resolver::resolve): Likewise.
+	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::go): Likewise.
+	* checks/errors/privacy/rust-pub-restricted-visitor.cc (PubRestrictedVisitor::go): Likewise.
+	* checks/errors/privacy/rust-visibility-resolver.cc (VisibilityResolver::go): Likewise.
+	* checks/errors/rust-const-checker.cc (ConstChecker::go): Likewise.
+	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::go): Likewise.
+	* checks/lints/rust-lint-marklive.cc (FindEntryPoint::find): Likewise.
+	* checks/lints/rust-lint-scan-deadcode.h (ScanDeadCode::Scan): Likewise.
+	* metadata/rust-export-metadata.cc (PublicInterface::gather_export_data): Likewise.
+	* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): Likewise.
+	* hir/rust-hir-dump.cc (CompileCrate::go): Likewise.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* hir/tree/rust-hir-expr.h (AwaitExpr::get_awaited_expr): New.
+	(AsyncBlockExpr::get_has_move, AsyncBlockExpr::get_block_expr): New.
+	* hir/tree/rust-hir-item.h (Enum::get_where_clause): New.
+	(Trait::get_where_clause, Trait::is_unsafe): New.
+	(ExternalItem::get_visibility): New.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* hir/tree/rust-hir.h (class FullVisitable): New.
+	(class Stmt): Adjust with new class.
+	(class Expr): Likewise.
+	(class Pattern): Likewise.
+	(class Type): Likewise.
+	(class TypeParamBound): Likewise.
+	(class GenericParam): Likewise.
+	(class TraitItem): Likewise.
+	(class ImplItem): Likewise.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* hir/tree/rust-hir.h (class WithInnerAttrs): New.
+	(class Item): Adjust to new WithInnerAttrs class.
+	(struct Crate): Likewise.
+	* hir/rust-hir-dump.cc (Dump::go): Likewise.
+	(Dump::visit): Likewise.
+	* hir/tree/rust-hir-expr.h (class GroupedExpr): Likewise.
+	(class ArrayExpr): Likewise.
+	(class TupleExpr): Likewise.
+	(class StructExprStruct): Likewise.
+	(class BlockExpr): Likewise.
+	(class MatchExpr): Likewise.
+	* hir/tree/rust-hir-item.h (TypeParam::get_outer_attribute): New.
+	(class Module): Adjust to new  WithInnerAttrs class.
+	(struct StructField): change struct to...
+	(class StructField): ... a class.
+	(class ImplBlock): Adjust to new  WithInnerAttrs class.
+	(class ExternBlock): Likewise.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* hir/tree/rust-hir-type.h (ArrayType::get_element_type): Returns
+	unique_ptr.
+	* hir/tree/rust-hir-expr.h (ArithmeticOrLogicalExpr::get_lhs)
+	(ArithmeticOrLogicalExpr::get_rhs): Likewise.
+	(ComparisonExpr::get_lhs, ComparisonExpr::get_rhs): Likewise.
+	(LazyBooleanExpr::get_lhs, LazyBooleanExpr::get_rhs): Likewise.
+	(AssignmentExpr::get_lhs, AssignmentExpr::get_rhs): Likewise.
+	(ArrayExpr::get_internal_elements): Likewise.
+	(ArrayIndexExpr::get_index_expr, ArrayIndexExpr::get_array_expr):
+	Likewise.
+	(StructExprFieldWithVal::get_value): Likewise.
+	(IfExpr::get_if_condition, IfExpr::get_if_block): Likewise.
+	(ExprWithBlock::get_else_block): Likewise.
+	* hir/tree/rust-hir-item.h (FunctionParam::get_param_name)
+	(FunctionParam::get_type): Likewise.
+	(ConstantItem::get_type, ConstantItem::get_expr): Likewise.
+	(StaticItem::get_expr, StaticItem::get_type): Likewise.
+	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
+	Adjust for previous change.
+	* backend/rust-compile-block.cc (CompileConditionalBlocks::visit):
+	Likewise.
+	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
+	* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
+	* backend/rust-compile-struct-field-expr.cc
+	(CompileStructExprField::visit): Likewise.
+	* checks/errors/privacy/rust-privacy-reporter.cc
+	(PrivacyReporter::visit): Likewise.
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+	Likewise.
+	* typecheck/rust-hir-type-check-implitem.cc
+	(TypeCheckImplItem::visit): Likewise.
+	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
+	Likewise.
+	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit):
+	Likewise.
+	* typecheck/rust-hir-type-check-struct.cc
+	(TypeCheckStructExpr::visit): Likewise.
+	* typecheck/rust-hir-type-check.cc
+	(TraitItemReference::get_type_from_fn): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-pattern.h: Change constructor to accept new parameter
+	instead of defaulting on string type.
+	* parse/rust-parse-impl.h (Parser::parse_literal_or_range_pattern):
+	Propagate type hint.
+	(Parser::parse_pattern_no_alt): Likewise.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* lex/rust-lex.cc (Lexer::parse_byte_char):add check for range of codepoint
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-pattern.cc (emit_invalid_field_error): Refactored Field
+	Error Function
+	(TypeCheckPattern::visit): called emit_invalid_field_error function
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-expand.cc
+	(MacroExpander::match_matcher): Remove append_fragment inside repetitions.
+	(MacroExpander::match_n_matches): Use sub_stack push/pop to handle repetitions.
+	(MatchedFragmentContainer::add_fragment): Add MatchedFragmentContainer accepting version.
+	* expand/rust-macro-expand.h
+	(MatchedFragmentContainer::add_fragment): Likewise.
+	(MatchedFragmentContainerRepetition::add_fragment): Likewise.
+	(SubstititionScope::append_fragment): Likewise.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-casts.cc (TypeCastRules::check): apply new argument
+	* typecheck/rust-coercion.cc (TypeCoercionRules::Coerce): track if this is a cast site
+	(TypeCoercionRules::TryCoerce): update ctor
+	(TypeCoercionRules::TypeCoercionRules): cleanup error handling
+	(TypeCoercionRules::do_coercion): likewise
+	(TypeCoercionRules::coerce_unsafe_ptr): only infer in try mode
+	(TypeCoercionRules::coerce_borrowed_pointer): cleanup
+	* typecheck/rust-coercion.h: update header
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-trait-reference.h: update prototype
+	* typecheck/rust-hir-trait-resolve.cc: add generic args as an out param
+	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): use the generics
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Add comment
+	after tail expressions.
+	* ast/rust-ast-dump.cc (Dump::require_spacing): Check for
+	missing previous token.
+	* ast/rust-ast-dump.h: Output formatting characters.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::collect): Collect
+	CollectItems once done.
+	(TokenCollector::newline): Add newline formatting
+	implementation.
+	(TokenCollector::indentation): Add indentation implementation.
+	(TokenCollector::increment_indentation): Add indentation
+	increment.
+	(TokenCollector::comment): Add new comment formatting option.
+	* ast/rust-ast-collector.h: Update prototypes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::collect_tokens):
+	Filter tokens.
+	(TokenCollector::visit_items_joined_by_separator): Change store
+	call.
+	(TokenCollector::visit_as_line): Likewise.
+	(TokenCollector::visit_items_as_block): Likewise.
+	(TokenCollector::trailing_comma): Likewise.
+	(TokenCollector::visit): Likewise.
+	(TokenCollector::visit_closure_common): Likewise.
+	(TokenCollector::visit_function_common): Likewise.
+	* ast/rust-ast-collector.h (class CollectItem): Add class to
+	differentiate between formatting and raw data (tokens).
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::TokenCollector):
+	Remove constructor, changing it to an implicit default
+	constructor.
+	* ast/rust-ast-collector.h: Change from container reference to
+	direct container.
+	* ast/rust-ast-dump.h: Change call to constructor.
+	* expand/rust-macro-expand.h (struct MacroExpander): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-dump.cc (Dump::require_spacing): Add a function
+	to determine wether a space shall output.
+	* ast/rust-ast-dump.h: Add function prototype as well as
+	condition.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Add a visit
+	function for visitable abstract class so we can call a dump on
+	any visitable item.
+	* ast/rust-ast-collector.h: Add new visit function prototype.
+	* ast/rust-ast-dump.cc (Dump::go): Add call to process function.
+	(Dump::visit): Remove functions.
+	(Dump::visit_items_joined_by_separator): Likewise.
+	(Dump::visit_as_line): Likewise.
+	(Dump::visit_items_as_lines): Likewise.
+	(Dump::visit_items_as_block): Likewise.
+	(Dump::visit_function_common): Likewise.
+	(get_delimiters): Likewise.
+	(Dump::debug): Update with call to tokencollector.
+	* ast/rust-ast-dump.h (RUST_AST_DUMP_H): Move include
+	directives.
+	(class Dump): Remove multiple prototypes and add generic process
+	function.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Add
+	semicolon in extern blocks.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust-session-manager.cc (Session::enable_dump): Remove
+	tokenstream dump.
+	(Session::compile_crate): Likewise.
+	(Session::dump_tokenstream): Likewise.
+	* rust-session-manager.h (struct CompileOptions): Likewise.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* lex/rust-lex.cc (Lexer::build_token):add check for all kinds of whitespaces
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h: Add default constructors.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Change with
+	call to getter.
+	* ast/rust-ast.cc (Module::as_string): Likewise.
+	(StaticItem::as_string): Likewise.
+	(TupleStruct::as_string): Likewise.
+	(Method::as_string): Likewise.
+	(StructStruct::as_string): Likewise.
+	(UseTreeRebind::as_string): Likewise.
+	(Enum::as_string): Likewise.
+	(Trait::as_string): Likewise.
+	(Union::as_string): Likewise.
+	(Function::as_string): Likewise.
+	(TypeAlias::as_string): Likewise.
+	(MacroRulesDefinition::as_string): Likewise.
+	(FieldAccessExpr::as_string): Likewise.
+	(MacroMatchFragment::as_string): Likewise.
+	(TypeParam::as_string): Likewise.
+	(StructExprFieldIdentifierValue::as_string): Likewise.
+	(EnumItem::as_string): Likewise.
+	(StructField::as_string): Likewise.
+	(ExternalTypeItem::as_string): Likewise.
+	(ExternalStaticItem::as_string): Likewise.
+	(ExternalFunctionItem::as_string): Likewise.
+	(TraitFunctionDecl::as_string): Likewise.
+	(TraitMethodDecl::as_string): Likewise.
+	(TraitItemConst::as_string): Likewise.
+	(TraitItemType::as_string): Likewise.
+	(MaybeNamedParam::as_string): Likewise.
+	(MetaListPaths::as_string): Likewise.
+	(MetaListNameValueStr::as_string): Likewise.
+	(Module::process_file_path): Likewise.
+	(MetaListNameValueStr::check_cfg_predicate): Likewise.
+	(MetaListPaths::check_cfg_predicate): Likewise.
+	(MetaWord::check_cfg_predicate): Likewise.
+	(MetaNameValueStr::check_cfg_predicate): Likewise.
+	(MetaNameValueStr::to_attribute): Likewise.
+	(MetaWord::to_attribute): Likewise.
+	(MetaListPaths::to_attribute): Likewise.
+	(MetaListNameValueStr::to_attribute): Likewise.
+	(operator<<): Change Identifier class <<
+	operator overload for standard output stream.
+	* ast/rust-ast.h (class Identifier): Change typedef to proper
+	class definition.
+	(operator<<): Add prototype for operator overload.
+	(class Token): Change getter identifier.
+	(class MetaListNameValueStr): Likewise.
+	(class PathExpr): Likewise.
+	* ast/rust-expr.h: Likewise.
+	* ast/rust-item.h: Likewise.
+	* ast/rust-macro.h: Likewise.
+	* ast/rust-path.cc (GenericArg::disambiguate_to_type): Likewise.
+	(GenericArgsBinding::as_string): Likewise.
+	(ConstGenericParam::as_string): Likewise.
+	* ast/rust-path.h: Likewise.
+	* ast/rust-pattern.cc (IdentifierPattern::as_string): Likewise.
+	(StructPatternFieldIdentPat::as_string): Likewise.
+	(StructPatternFieldIdent::as_string): Likewise.
+	* ast/rust-type.h: Likewise.
+	* backend/rust-compile-base.cc: Likewise.
+	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
+	* backend/rust-compile-extern.h: Likewise.
+	* backend/rust-compile-fnparam.cc (CompileFnParam::visit):
+	Likewise.
+	* backend/rust-compile-implitem.cc (CompileTraitItem::visit):
+	Likewise.
+	* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
+	* backend/rust-compile-pattern.cc (CompilePatternBindings::visit): Likewise.
+	* backend/rust-compile-struct-field-expr.cc (CompileStructExprField::visit):
+	Likewise.
+	* backend/rust-compile-var-decl.h: Likewise.
+	* backend/rust-compile.cc: Likewise.
+	* checks/errors/rust-unsafe-checker.cc (check_extern_call):
+	Likewise.
+	* checks/lints/rust-lint-marklive.cc (MarkLive::visit):
+	Likewise.
+	* checks/lints/rust-lint-scan-deadcode.h: Likewise.
+	* expand/rust-derive-clone.cc (DeriveClone::clone_fn): Likewise.
+	(DeriveClone::visit_tuple): Likewise.
+	(DeriveClone::visit_struct): Likewise.
+	(DeriveClone::visit_union): Likewise.
+	* expand/rust-derive-copy.cc (DeriveCopy::visit_struct):
+	Likewise.
+	(DeriveCopy::visit_tuple): Likewise.
+	(DeriveCopy::visit_enum): Likewise.
+	(DeriveCopy::visit_union): Likewise.
+	* expand/rust-macro-expand.cc (MacroExpander::match_matcher):
+	Likewise.
+	(MacroExpander::match_n_matches): Likewise.
+	(MacroExpander::match_repetition): Likewise.
+	(MacroExpander::match_repetition_skipped_metavars): Likewise.
+	* hir/rust-ast-lower-base.cc (struct_field_name_exists):
+	Likewise.
+	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
+	* hir/rust-ast-lower-type.cc (ASTLowerGenericParam::visit):
+	Likewise.
+	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
+	* hir/tree/rust-hir-expr.h: Likewise.
+	* hir/tree/rust-hir-item.h: Likewise.
+	* hir/tree/rust-hir-path.h: Likewise.
+	* hir/tree/rust-hir-type.h: Likewise.
+	* hir/tree/rust-hir.cc (Module::as_string): Likewise.
+	(StaticItem::as_string): Likewise.
+	(TupleStruct::as_string): Likewise.
+	(ConstantItem::as_string): Likewise.
+	(StructStruct::as_string): Likewise.
+	(UseTreeRebind::as_string): Likewise.
+	(Enum::as_string): Likewise.
+	(Trait::as_string): Likewise.
+	(Union::as_string): Likewise.
+	(Function::as_string): Likewise.
+	(TypeAlias::as_string): Likewise.
+	(FieldAccessExpr::as_string): Likewise.
+	(TypeParam::as_string): Likewise.
+	(GenericArgsBinding::as_string): Likewise.
+	(StructPatternFieldIdent::as_string): Likewise.
+	(StructPatternFieldIdentPat::as_string): Likewise.
+	(IdentifierPattern::as_string): Likewise.
+	(StructExprFieldIdentifierValue::as_string): Likewise.
+	(EnumItem::as_string): Likewise.
+	(StructField::as_string): Likewise.
+	(ExternalStaticItem::as_string): Likewise.
+	(ExternalFunctionItem::as_string): Likewise.
+	(NamedFunctionParam::as_string): Likewise.
+	(TraitFunctionDecl::as_string): Likewise.
+	(TraitItemConst::as_string): Likewise.
+	(TraitItemType::as_string): Likewise.
+	(MaybeNamedParam::as_string): Likewise.
+	* hir/tree/rust-hir.h: Likewise.
+	* parse/rust-parse-impl.h (Parser::parse_macro_match_fragment):
+	Likewise.
+	(Parser::parse_module): Likewise.
+	(Parser::parse_use_tree): Likewise.
+	(Parser::parse_maybe_named_param): Likewise.
+	* resolve/rust-ast-resolve-implitem.h: Likewise.
+	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
+	Likewise.
+	(ResolveItem::visit): Likewise.
+	(flatten_rebind): Likewise.
+	(ResolveExternItem::visit): Likewise.
+	(rust_flatten_rebind): Likewise.
+	(rust_flatten_rebind_nested): Likewise.
+	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go):
+	Likewise.
+	(PatternDeclaration::visit): Likewise.
+	(PatternDeclaration::add_new_binding): Likewise.
+	* resolve/rust-ast-resolve-stmt.h: Likewise.
+	* resolve/rust-ast-resolve-toplevel.h: Likewise.
+	* resolve/rust-ast-resolve-type.h: Likewise.
+	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise.
+	* typecheck/rust-autoderef.cc: Likewise.
+	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select):
+	Likewise.
+	* typecheck/rust-hir-path-probe.cc (PathProbeType::visit):
+	Likewise.
+	* typecheck/rust-hir-trait-reference.cc (TraitReference::get_name): Likewise.
+	* typecheck/rust-hir-trait-resolve.cc (ResolveTraitItemToRef::visit): Likewise.
+	(TraitResolver::resolve_trait): Likewise.
+	(TraitItemReference::resolve_item): Likewise.
+	(AssociatedImplTrait::setup_raw_associated_types): Likewise.
+	* typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit): Likewise.
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+	Likewise.
+	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit): Likewise.
+	(TypeCheckImplItem::visit): Likewise.
+	(TypeCheckImplItemWithTrait::visit): Likewise.
+	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
+	Likewise.
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
+	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::visit): Likewise.
+	* typecheck/rust-hir-type-check-type.cc (TypeResolveGenericParam::visit): Likewise.
+	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): Likewise.
+	* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args): Likewise.
+	* util/rust-attributes.cc (check_doc_attribute): Likewise.
+	* util/rust-hir-map.cc (Mappings::insert_macro_def): Likewise.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* lex/rust-lex.cc (is_float_digit):Change types of param to `uint32_t`
+	(is_x_digit):Likewise
+	(is_octal_digit):Likewise
+	(is_bin_digit):Likewise
+	(check_valid_float_dot_end):Likewise
+	(is_whitespace):Likewise
+	(is_non_decimal_int_literal_separator):Likewise
+	(is_identifier_start):Likewise
+	(is_identifier_continue):Likewise
+	(Lexer::skip_broken_string_input):Likewise
+	(Lexer::build_token):Remove handling BOM
+	(Lexer::parse_in_type_suffix):Modify use of `current_char`
+	(Lexer::parse_in_decimal):Likewise
+	(Lexer::parse_escape):Likewise
+	(Lexer::parse_utf8_escape):Likewise
+	(Lexer::parse_partial_string_continue):Likewise
+	(Lexer::parse_partial_hex_escape):Likewise
+	(Lexer::parse_partial_unicode_escape):Likewise
+	(Lexer::parse_byte_char):Likewise
+	(Lexer::parse_byte_string):Likewise
+	(Lexer::parse_raw_byte_string):Likewise
+	(Lexer::parse_raw_identifier):Likewise
+	(Lexer::parse_non_decimal_int_literal):Likewise
+	(Lexer::parse_decimal_int_or_float):Likewise
+	(Lexer::peek_input):Change return type to `Codepoint`
+	(Lexer::get_input_codepoint_length):Change to return 1
+	(Lexer::peek_codepoint_input):Change to be wrapper of `peek_input`
+	(Lexer::skip_codepoint_input):Change to be wrapper of `skip_input`
+	(Lexer::test_get_input_codepoint_n_length):Deleted
+	(Lexer::split_current_token):Deleted
+	(Lexer::test_peek_codepoint_input):Deleted
+	(Lexer::start_line):Move backwards
+	(assert_source_content):New helper function for selftest
+	(test_buffer_input_source):New helper function for selftest
+	(test_file_input_source):Likewise
+	(rust_input_source_test):New test
+	* lex/rust-lex.h (rust_input_source_test):New test
+	* rust-lang.cc (run_rust_tests):Add selftest
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-expand.cc
+	(MacroExpander::match_repetition_skipped_metavars): New.
+	(MacroExpander::match_repetition): Use new method.
+	* expand/rust-macro-expand.h
+	(MacroExpander::match_repetition_skipped_metavars): New.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): called rust_error_at
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): called rust_error_at
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-expand.cc
+	(MacroExpander::match_token): Match token instead of token id.
+	* parse/rust-parse-impl.h
+	(Parser::skip_token): Add token-skipping variant.
+	(Parser::expect_token): Likewise.
+	* parse/rust-parse.h
+	(Parser::skip_token): Likewise.
+	(Parser::expect_token): Likewise.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* lang.opt: Add -frust-name-resolution-2.0 option
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-autoderef.cc (AutoderefCycle::cycle): add check for pointers
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-autoderef.cc: use new selection filter
+	* typecheck/rust-hir-dot-operator.cc (MethodResolver::Select): new slection Filter
+	* typecheck/rust-hir-dot-operator.h: New select prototype
+	* typecheck/rust-hir-type-check-expr.cc: call select
+	* typecheck/rust-type-util.cc (try_coercion): new helper
+	* typecheck/rust-type-util.h (try_coercion): helper prototype
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): passed "E0277"
+	* typecheck/rust-tyty.cc (BaseType::bounds_compatible): passed "E0277"
+
+2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>
+
+	* expand/rust-expand-visitor.cc (ExpandVisitor::visit):
+	Expand expressions in more contexts.
+	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+	Visit enum variants.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.cc (BlockExpr::normalize_tail_expr): Refactor
+	code and warn about dangling reference.
+	* expand/rust-expand-visitor.cc (expand_stmt_attribute):
+	Document function and change argument names to make those
+	clearer.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_inner_stmts):
+	Remove second argument.
+	(ExpandVisitor::visit): Remove argument from function call.
+	* expand/rust-expand-visitor.h: Update function prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Change
+	call to expand_inner_stmts.
+	(expand_tail_expr): Change argument name and try to expand the
+	last statement as a tail expression once all statements have
+	been expanded.
+	* expand/rust-expand-visitor.h: Change prototype to accept
+	parent class.
+	* ast/rust-expr.h: Add try_convert_last_stmt function prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-expr.h: Add a function to take tail expr as well
+	as a function to set a tail expression.
+	* expand/rust-expand-visitor.cc (expand_tail_expr): Add tail
+	expression expansion function.
+	(ExpandVisitor::visit): Add call to tail expr expansion in for
+	BlockExpr.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+	    Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.cc : Change type from pointer to
+	reference and expand statements from statements.
+	* ast/rust-macro.h: Return macro kind.
+	* ast/rust-ast.h: Add Statement kind.
+	* ast/rust-item.h: Change module.
+	* ast/rust-stmt.h: Return kind.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-expand.cc
+	(MacroExpander::expand_decl_macro):
+	Use pointers/smart pointers to refer to MatchedFragmentContainer instances.
+	(MacroExpander::transcribe_rule): Likewise.
+	(MatchedFragmentContainer::get_single_fragment): New implementation.
+	(MatchedFragmentContainer::get_fragments): Likewise.
+	(MatchedFragmentContainer::add_fragment): Likewise.
+	(MatchedFragmentContainer::zero): Likewise.
+	(MatchedFragmentContainer::metavar): Likewise.
+	* expand/rust-macro-expand.h
+	(class MatchedFragmentContainer): Make abstract.
+	(class MatchedFragmentContainerMetaVar): New.
+	(class MatchedFragmentContainerRepetition): New.
+	(class SubstitutionScope):
+	Use pointers/smart pointers to refer to MatchedFragmentContainer instances.
+	(MacroExpander::transcribe_rule): Likewise.
+	* expand/rust-macro-substitute-ctx.cc
+	(SubstituteCtx::substitute_metavar): Likewise.
+	(SubstituteCtx::check_repetition_amount): Likewise.
+	(SubstituteCtx::substitute_repetition): Likewise.
+	* expand/rust-macro-substitute-ctx.h
+	(class SubstituteCtx): Likewise.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): called rust_error_at
+	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): called rust_error_at
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::ResolveImplBlockSelfWithInference):
+	arguments mappings as an out parameter and apply them to the bounds
+	* typecheck/rust-hir-type-check-item.h: update the prototype
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
+	apply the arguments to the segment type
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
+	simplify lookup of the respective predicate
+	* typecheck/rust-tyty-subst.cc (SubstitutionArg::SubstitutionArg): track original parameter
+	(SubstitutionArg::operator=): update copy ctor
+	(SubstitutionArg::get_param_ty): use original param
+	(SubstitutionArg::as_string): update as_string
+	* typecheck/rust-tyty-subst.h: add new private field
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::ResolveImplBlockSelfWithInference):
+	New helper utility to infer non concrete types and handle the case where its not a
+	binding generic type (which inherits SubstitutionRef)
+	* typecheck/rust-hir-type-check-item.h: new helper prototype
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): use this helper
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-trait-resolve.cc: use lookup_predicate (DefID)
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): fix formatting
+
+2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>
+
+	* ast/rust-ast.h (MacroInvocation::add_semicolon): New method.
+	(Expr::to_stmt): Remove method.
+	* ast/rust-macro.h (MacroInvocation::add_semicolon): Add override.
+	(MacroInvocation::to_stmt): Remove override.
+	* ast/rust-stmt.h: Remove use of Expr::to_stmt.
+	(ExprStmt::add_semicolon): Add override.
+	* expand/rust-macro-expand.h (struct MacroExpander):
+	Add EXPR/STMT and remove BLOCK from ContextType.
+	* expand/rust-expand-visitor.cc (ExpandVisitor::maybe_expand_expr): Use EXPR context.
+	(ExpandVisitor::expand_inner_stmts): Use STMT context.
+	(ExpandVisitor::visitor): Remove use of BLOCK context.
+	* expand/rust-macro-expand.cc (parse_many): Pass enum by value.
+	(transcribe_on_delimiter): Remove function.
+	(transcribe_context): Use EXPR/STMT contexts.
+	(MacroExpander::parse_proc_macro_output): Use EXPR/STMT contexts.
+	(transcribe_many_stmts): Parse statements with semicolons.
+	* parse/rust-parse-impl.h (Parser::parse_stmt):
+	Delegate macro parsing to parse_expr_stmt, check for ! after macro_rules.
+	(Parser::parse_let_stmt): Work around lack of NT tokens.
+	(Parser::parse_expr_stmt): Handle statements at end of macro expansions.
+	(Parser::parse_expr_stmt): Parse macro statements/expression statements
+	starting with a macro.
+	(Parser::parse_match_expr): Don't modify flag unnecessarily.
+	(Parser::parse_stmt_or_expr):
+	Parse macro statements/expression statements starting with a macro.
+	(Parser::parse_path_based_stmt_or_expr): Remove method.
+	(Parser::parse_macro_invocation_maybe_semi): Remove method.
+	(Parser::parse_expr): Move code into left_denotations.
+	(Parser::left_denotations): New method.
+	(Parser::null_denotation): Split out methods for cases with and without paths.
+	(Parser::null_denotation_path): New method.
+	(Parser::null_denotation_not_path): New method.
+	(Parser::parse_macro_invocation_partial): Don't check for semicolon here.
+	* parse/rust-parse.h: Update declarations.
+	(struct ParseRestrictions): Additional flag.
+
+2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>
+
+	* ast/rust-ast.cc (BlockExpr::strip_tail_expr):
+	Don't normalize tail expression in this method.
+	(BlockExpr::normalize_tail_expr): New method that only does the normalization.
+	* ast/rust-expr.h: Declare new method.
+	* hir/rust-ast-lower-block.h: Normalize tail expressions on blocks before lowering.
+
+2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>
+
+	* ast/rust-ast-dump.cc (Dump::visit): Print macro invocations.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* lex/rust-lex.cc (is_whitespace):add all lacked codepoints valid as whitespaces
+	(is_identifier_start):new function to check XID_Start and underscore
+	(is_identifier_continue):new function to check XID_Continue
+	(Lexer::build_token):tokenize Unicode identifiers
+	(Lexer::parse_partial_string_continue):add comments
+	(Lexer::parse_partial_unicode_escape):add comments
+	(Lexer::parse_raw_identifier):change to use `is_identifier_scontinue`
+	(Lexer::parse_identifier_or_keyword):change to use `is_identifier_continue`
+	(Lexer::parse_char_or_lifetime):change to use `is_identifier_start/continue`
+	(Lexer::skip_codepoint_input):do not attempt to skip input when bumping EOF
+	* lex/rust-lex.h:add `current_char32` field
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* lex/rust-lex.cc
+	(Lexer::classify_keyword): Check if iterator is valid before dereferencing.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-expand.cc
+	(MacroExpander::match_repetition): Remove redundant rust_error_at call.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-unify.cc (UnifyRules::go): dont check bounds on placeholders
+
+2024-01-16  tieway59  <tieway59@foxmail.com>
+
+	* typecheck/rust-tycheck-dump.h: Delete this file
+	* rust-session-manager.cc: Remove `Session::dump_type_resolution`
+	and `TYPE_RESOLUTION_DUMP`
+	* rust-session-manager.h: Likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address):
+	match the fntype to the candidate
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* expand/rust-derive.h: Store AstBuilder and location.
+	* expand/rust-derive.cc (DeriveVisitor::DeriveVisitor): Update constructor.
+	* expand/rust-derive-clone.h: Remove members now stored in `DeriveVisitor`.
+	* expand/rust-derive-copy.h: Likewise.
+	* expand/rust-derive-clone.cc (DeriveClone::DeriveClone): Update constructor.
+	* expand/rust-derive-copy.cc (DeriveCopy::DeriveCopy): Likewise.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-item.cc (CompileItem::visit): ensure assoicated types are setup
+	* typecheck/rust-hir-trait-reference.h: new interface for concrete impl block
+	* typecheck/rust-hir-trait-resolve.cc (AssociatedImplTrait::setup_raw_associated_types):
+	ensure we setup assoicated types for this impl block
+
+2024-01-16  Dave Evans  <dave@dmetwo.org>
+
+	* backend/rust-compile-expr.cc (check_match_scrutinee): Add REF type to rust_assert.
+	(CompileExpr::visit): Add REF type for scrutinee_kind in MatchExpr visitor.
+
+2024-01-16  TieWay59  <tieway59@foxmail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc: Remove obsolete error diagnostic
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit):
+	use new interface
+	* typecheck/rust-type-util.cc (types_compatable): implementation of new interface
+	* typecheck/rust-type-util.h (types_compatable): prototype
+	* typecheck/rust-unify.cc (UnifyRules::expect_placeholder):
+	It is allow for unification against placeholders
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.cc (derive_item): Add const
+	attribute to the trait name argument.
+	* expand/rust-macro-expand.h (struct MacroExpander): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.cc (get_traits_to_derive): Change
+	assertion to allow empty derive directives.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.cc (expand_attribute): Add function
+	to expand a given attribute on a given item.
+	* expand/rust-macro-expand.h (struct MacroExpander): Change
+	return type to ast fragment.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.cc (get_traits_to_derive): Change
+	the function to get traits in a given attribute instead of an
+	attribute vector.
+	(ExpandVisitor::expand_struct_fields): Remove call in visitor.
+	(ExpandVisitor::expand_function_params): Likewise.
+	(ExpandVisitor::expand_closure_params): Likewise.
+	(ExpandVisitor::visit): Likewise.
+	(ExpandVisitor::expand_outer_attribute): Remove function.
+	(ExpandVisitor::visit_outer_attrs): Remove function.
+	* expand/rust-expand-visitor.h: Remove function prototypes.
+	(ExpandVisitor::visit_outer_attrs): Remove function.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.h: Remove fragment collection fro
+	procedural macros.
+	* expand/rust-macro-expand.h (struct MacroExpander): Remove
+	procedural macro fragment from expander.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-fragment.cc (Fragment::Fragment): Remove
+	overwrite member in constructor.
+	(Fragment::operator=): Removal of overwrite member in copy.
+	(Fragment::should_overwrite): Remove overwrite getter.
+	* ast/rust-ast-fragment.h: Remove overwrite boolean member.
+	* expand/rust-expand-visitor.cc (derive_item): Add a function to
+	derive items using the expander for now.
+	(builtin_derive_item): Rename from derive_item to
+	builtin_derive_item.
+	(ExpandVisitor::visit): Remove visit to derive attributes.
+	(ExpandVisitor::expand_derive): Remove derive attribute visitor.
+	(ExpandVisitor::visit_attrs_with_derive): Likewise.
+	* expand/rust-expand-visitor.h: Update insertion of other kind
+	of proc macros. We no longer have an overwrite attribute in the
+	fragment.
+	* expand/rust-macro-expand.cc (MacroExpander::parse_procmacro_output):
+	Return the fragment instead of inserting it.
+	* expand/rust-macro-expand.h (struct MacroExpander): Return
+	fragment.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.h: Update enum name to match
+	definition.
+	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_derive):
+	Add call to expander.
+	(ExpandVisitor::expand_outer_attribute):
+	Change call to macro expander.
+	(ExpandVisitor::expand_inner_attribute): Likewise.
+	* expand/rust-expand-visitor.h: Remove const attribute to match
+	visitor declaration. Attach result to the AST. Add condition for
+	item erasure.
+	* expand/rust-proc-macro.h: Add token collector and expansion
+	call. Add lexers and parsers for each proc macro type and uses
+	them to parse macro output.
+	* expand/rust-macro-expand.h (struct MacroExpander): Add
+	functions.
+	* expand/rust-proc-macro.cc (ProcMacroExpander::import_proc_macros):
+	Moved from here...
+	* expand/rust-macro-expand.cc (MacroExpander::import_proc_macros):
+	... to here. Unify procedural macro parsing under one function.
+	Add a flag to determine whether it originate from a derive
+	macro.
+	(MacroExpander::parse_procmacro_output):
+	Parse macro output to statements. Store an error on parsing
+	failure.
+	* Make-lang.in: Add const_TokenPtr specific lexer.
+	* expand/rust-proc-macro-invoc-lexer.cc: New file.
+	* expand/rust-proc-macro-invoc-lexer.h: New file.
+	* rust-session-manager.cc (Session::expansion): Remove
+	ProcMacroExpander declaration.
+	* ast/rust-ast-fragment.cc (Fragment::Fragment): Add overwrite
+	flag.
+	(Fragment::should_overwrite): Add a getter to determine whether
+	the fragment shall overwrite it's parent or be appended after.
+	* ast/rust-ast-fragment.h: Add flag to declaration.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-hir-map.cc (Mappings::insert_bang_proc_macro):
+	Add a function to insert a new bang proc macro.
+	(Mappings::lookup_bang_proc_macro): Add a function to lookup a
+	bang procedural macro.
+	(Mappings::insert_derive_proc_macro): Add a function to insert a
+	derive procedural macro.
+	(Mappings::lookup_derive_proc_macro): Add a function to lookup a
+	derive procedural macro.
+	(Mappings::insert_attribute_proc_macro): Add a function to
+	insert an attribute procedural macro.
+	(Mappings::lookup_attribute_proc_macro): Add a function to
+	lookup an attribute procedural macro.
+	* util/rust-hir-map.h: Add function prototypes.
+	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_outer_attribute):
+	Implement expansion of outer attributes.
+	(ExpandVisitor::expand_inner_attribute):
+	Add call for inner attribute expansion.
+	* expand/rust-expand-visitor.h:
+	Add new procedural macro expander attribute.
+	* expand/rust-proc-macro.cc (load_macros_array): Add a function
+	to load the proc macro array from a given shared object.
+	(load_macros): Add a function to retrieve procedural macro
+	vector from a given shared object.
+	(ProcMacroExpander::import_proc_macros): Add a function to load
+	procedural macros from a given extern crate name.
+	* expand/rust-proc-macro.h (RUST_PROC_MACRO_H): Add new
+	proc-macro file.
+	(class ProcMacroExpander): Add new ProcMacroExpander class.
+	* rust-session-manager.cc (Session::expansion): Create new macro
+	expander and feed it to the expand visitor.
+	* util/rust-attributes.cc: Add macro_export builtin attribute.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix
+	attribute collection.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.h: Make trivial visitors public.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Make-lang.in: Add rust-proc-macro object to list.
+	* expand/rust-proc-macro.cc: New file.
+	* expand/rust-proc-macro.h: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-attributes.cc: Add attribute to the table.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Move
+	implementation from here...
+	* ast/rust-ast-collector.h: ... to here.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* Make-lang.in: Add "rust-dir-owner.o".
+	* ast/rust-ast.cc: Include "rust-dir-owner.h".
+	(Module::process_file_path):
+	Handle non-mod-rs external file modules properly.
+	* parse/rust-parse-impl.h: Include "rust-dir-owner.h".
+	(Parser::parse_module):
+	Handle non-mod-rs external file modules properly.
+	* util/rust-dir-owner.cc: New file.
+	* util/rust-dir-owner.h: New file.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-builtins.cc: Fix comments.
+	(MacroBuiltin::proc_macro_builtin): Add error message.
+	* expand/rust-macro-builtins.h: Fix comments.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-trait-resolve.cc: when the bound is concrete keep the mapping
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): add missing call
+	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): make this the same as paths
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* util/rust-optional.h
+	(class Optional): Add volatile field to union.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-substitute-ctx.cc
+	(SubstituteCtx::substitute_metavar): Substitute crate metavar.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* parse/rust-parse-impl.h
+	(Parser::null_denotation): Allow struct expression referencing.
+
+2024-01-16  Charalampos Mitrodimas  <charmitro@gmail.com>
+
+	* ast/rust-ast-dump.cc (Dump::visit):
+	print literals based on their type.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* expand/rust-macro-builtins.cc (MacroBuiltin::dummy): New function.
+	* expand/rust-macro-builtins.h: Declare it.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-ast-builder.cc (AstBuilder::struct_expr_struct): New function.
+	(AstBuilder::let): Likewise.
+	(AstBuilder::struct_expr): Likewise.
+	(AstBuilder::struct_expr_field): Likewise.
+	(AstBuilder::field_access): Likewise.
+	(AstBuilder::wildcard): Likewise.
+	* ast/rust-ast-builder.h: Likewise.
+	* expand/rust-derive-clone.cc (DeriveClone::visit_union): Implement
+	properly.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* Make-lang.in: Add new files.
+	* expand/rust-derive.cc (DeriveVisitor::derive): Call into DeriveCopy.
+	* expand/rust-derive-copy.cc: New file.
+	* expand/rust-derive-copy.h: New file.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* expand/rust-derive-clone.cc (DeriveClone::visit_struct): Implement proper
+	cloning for structs with fields.
+	* ast/rust-ast-builder.cc (AstBuilder::struct_expr): New function.
+	(AstBuilder::struct_expr_field): Likewise.
+	(AstBuilder::field_access): Likewise.
+	(AstBuilder::let): Likewise.
+	* ast/rust-ast-builder.h: Declare new functions.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (convert): Use a variable instead
+	of multiple nested calls.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lex/rust-lex.h: Make build_token method public.
+	* lex/rust-token.h: Add a setter for a token location.
+	* util/rust-token-converter.cc (convert): Add the function to
+	convert from a Span to a Location.
+	(from_ident): Convert Ident span to a Location.
+	(from_literal): Convert Literal span to a Location.
+	(from_punct): Convert Punct span to a Location.
+	(from_group): Convert Group span to a Location.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (convert): Add implementation.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (convert): Update call to
+	constructors with location information.
+	(handle_suffix): Convert token locus to a Span and use it in the
+	literal.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-expand.cc
+	(MacroExpander::try_match_rule): Don't match delimiters for root matcher.
+	(MacroExpander::match_matcher): Add option to match delimiters.
+	* expand/rust-macro-expand.h
+	(MacroExpander::match_matcher): Likewise.
+	* parse/rust-parse-impl.h
+	(Parser::skip_token): Add zero argument method.
+	* parse/rust-parse.h:
+	(Parser::skip_token): Likewise.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* Make-lang.in: remove files
+	* backend/rust-compile-block.h: fix headers
+	* backend/rust-compile-expr.h: likewise
+	* backend/rust-compile-fnparam.h: likewise
+	* backend/rust-compile-item.h: likewise
+	* backend/rust-compile-pattern.h: likewise
+	* backend/rust-compile-resolve-path.h: likewise
+	* backend/rust-compile-stmt.h: likewise
+	* typecheck/rust-autoderef.cc: likewise
+	* typecheck/rust-hir-path-probe.cc: likewise
+	* typecheck/rust-hir-path-probe.h: likewise
+	* typecheck/rust-hir-trait-reference.h: likewise
+	* typecheck/rust-hir-trait-resolve.cc: use a for loop instead
+	* typecheck/rust-hir-trait-resolve.h: fix headers
+	* typecheck/rust-hir-type-check-expr.h: likewise
+	* typecheck/rust-hir-type-check-implitem.h: likewise
+	* typecheck/rust-hir-type-check-item.h: likewise
+	* typecheck/rust-hir-type-check-path.cc: likewise
+	* typecheck/rust-hir-type-check-pattern.h: likewise
+	* typecheck/rust-hir-type-check-stmt.h: likewise
+	* typecheck/rust-hir-type-check-type.h: likewise
+	* typecheck/rust-hir-type-check-util.cc: Removed.
+	* typecheck/rust-hir-type-check-util.h: Removed.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* Make-lang.in: Add new object files to Makefile.
+	* expand/rust-expand-visitor.cc (is_derive): Move function.
+	(is_builtin): Likewise.
+	(get_traits_to_derive): New function.
+	(derive_item): Likewise.
+	(ExpandVisitor::visit): Visit item/statements containers.
+	(ExpandVisitor::visit_outer_attrs): Take a reference on the attribute
+	instead of a copy.
+	(ExpandVisitor::is_derive): Deleted function.
+	(ExpandVisitor::is_builtin): Likewise.
+	* expand/rust-expand-visitor.h (RUST_EXPAND_VISITOR_H): Add missing #ifdef
+	guards.
+	(is_derive): Declare function.
+	(is_builtin): Likewise.
+	* expand/rust-macro-builtins.cc (builtin_macro_from_string): Use new
+	MacroBuiltin::builtins map.
+	(make_macro_path_str): Likewise.
+	* expand/rust-macro-builtins.h (enum class): Add builtin derive macros.
+	* expand/rust-derive-clone.cc: New file.
+	* expand/rust-derive-clone.h: New file.
+	* expand/rust-derive.cc: New file.
+	* expand/rust-derive.h: New file.
+	* util/rust-hir-map.cc (Mappings::insert_macro_def): Fix logic for
+	setting builtin macro transcribers.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-ast-builder.cc: New file.
+	* ast/rust-ast-builder.h: New file.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* expand/rust-macro-invoc-lexer.cc: Add missing copyright header.
+	* expand/rust-macro-substitute-ctx.cc: Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-session-manager.h:
+	Include "rust-optional.h".
+	(struct TargetOptions):
+	Store values in config key/value pairs as Optional<std::string> rather than std::string.
+	* rust-session-manager.cc
+	(TargetOptions::dump_target_options):
+	Handle Optional<std::string> values.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-casts.cc (TypeCastRules::check): do coercion
+	(TypeCastRules::emit_cast_error): clang-format
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* resolve/rust-ast-resolve-stmt.cc (ResolveStmt::visit): add name resolution
+	* resolve/rust-ast-resolve-stmt.h: likewise
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): insert resolved node
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* resolve/rust-ast-resolve-pattern.cc: remove unused
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): fix missing pop
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-expr.cc (CompileExpr::visit): remove unused
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::translate): hir lowering
+	(ASTLoweringStmt::visit): likewise
+	* hir/rust-ast-lower-stmt.h: likewise
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-substitute-ctx.cc
+	(SubstituteCtx::substitute_metavar): Allow substitution failure.
+	(SubstituteCtx::substitute_token):
+	Handle substitution failure, include dollar sign in count of tokens to substitute.
+	(SubstituteCtx::substitute_tokens):
+	Include dollar sign in count of tokens to substitute.
+	* expand/rust-macro-substitute-ctx.h
+	(SubstituteCtx::substitute_metavar):
+	Adjust signature and document new substitution failure handling.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-substitute-ctx.cc
+	(SubstituteCtx::check_repetition_amount):
+	Ignore single fragments while checking repetition amount.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): stop if error
+	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_sized_builtin): fix sized options
+	* typecheck/rust-tyty.cc (BaseType::satisfies_bound): its ok if its an ?T
+	(BaseType::bounds_compatible): likewise
+	* typecheck/rust-tyty.h: update prototype
+	* typecheck/rust-unify.cc (UnifyRules::go): check both sides bounds
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-expr.cc (HIRCompileBase::resolve_deref_adjustment):
+	reuse op overload code
+	* typecheck/rust-autoderef.cc (Adjuster::try_deref_type): update
+	(Adjuster::try_raw_deref_type): likewise
+	* typecheck/rust-autoderef.h: likewise
+	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select):
+	improve debug loging
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address): refactor
+	* backend/rust-compile-base.h: likewise
+	* backend/rust-compile-expr.cc (CompileExpr::visit): likewise
+	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): likewise
+
+2024-01-16  David Malcolm  <dmalcolm@redhat.com>
+
+	* typecheck/rust-hir-trait-reference.cc (TraitItemReference::is_optional): Remove
+	stray semicolon.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::go): Cleanup
+	order of calls when accumulating #[macro_use] macros.
+	(EarlyNameResolver::visit): Likewise.
+
+2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>
+
+	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::accumulate_escaped_macros):
+	Remove unnecessary visit.
+
+2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>
+
+	* ast/rust-ast.cc (Attribute::check_cfg_predicate):
+	Only check first item as a predicate.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* util/rust-optional.h
+	(operator==): New for Optional<T> == Optional<U>.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* parse/rust-parse-impl.h
+	(Parser::parse_attr_input): Parse AttrInputMacro.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.cc (TokenCollector::visit): Propagate
+	coretype hint.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* util/rust-optional.h
+	(class Optional<T>): Improve inner state.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-substitute-ctx.cc
+	(SubstituteCtx::check_repetition_amount): Handle keywords.
+	(SubstituteCtx::substitute_token): Likewise.
+	* lex/rust-token.cc
+	(Token::get_str): Likewise.
+	* parse/rust-parse-impl.h
+	(Parser::parse_macro_match_fragment): Likewise.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-ast.h: Add `outer_attrs` to Item.
+	* ast/rust-expr.h: Make use of new inheritance methods.
+	* ast/rust-item.h: Likewise.
+	* ast/rust-macro.h: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (dispatch_float_literals): Remove
+	function.
+	(handle_suffix): Rename old dispatch and add one LitKind
+	argument.
+	(dispatch_integer_literals): Remove function.
+	(convert): Change call from dispatch to suffix handler.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lex/rust-token.h: Implement hash for token id enumeration.
+	* util/rust-token-converter.cc (dispatch_float_literals): Update
+	to new internals.
+	(dispatch_integer_literals): Likewise.
+	(convert): Likewise.
+	(string_literal): Remove function.
+	(byte_string_literal): Likewise.
+	(unsigned_literal): Likewise.
+	(signed_literal): Likewise.
+	(from_literal): Update with new internals.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-ast-dump.cc
+	(Dump::visit): Add AttrInputMacro visitor.
+	* ast/rust-ast-dump.h:
+	(Dump::visit): Likewise.
+	* ast/rust-ast-full-decls.h
+	(class AttrInputMacro): New.
+	* ast/rust-ast-collector.cc
+	(TokenCollector::visit):
+	Add and call out to AttrInputMacro visitor.
+	* ast/rust-ast-collector.h:
+	(TokenCollector::visit): Add AttrInputMacro visitor.
+	* ast/rust-ast-visitor.h:
+	(ASTVisitor::visit): Likewise.
+	* ast/rust-ast.cc
+	(AttrInputMacro::accept_vis): New.
+	(AttrInputMacro::as_string): New.
+	(AttrInputMacro::AttrInputMacro): New.
+	(AttrInputMacro::operator=): New.
+	* ast/rust-ast.h:
+	(AttrInput::AttrInputType::MACRO): New.
+	* ast/rust-expr.h
+	(class AttrInputMacro): New.
+	* checks/errors/rust-feature-gate.h:
+	(FeatureGate::visit): Add AttrInputMacro visitor.
+	* expand/rust-cfg-strip.cc
+	(CfgStrip::visit): Likewise.
+	* expand/rust-cfg-strip.h:
+	(CfgStrip::visit): Likewise.
+	* expand/rust-expand-visitor.cc
+	(ExpandVisitor::visit): Likewise.
+	* expand/rust-expand-visitor.h:
+	(ExpandVisitor::visit): Likewise.
+	* hir/rust-ast-lower-base.cc
+	(ASTLoweringBase::visit): Likewise.
+	* hir/rust-ast-lower-base.h:
+	(ASTLoweringBase::visit): Likewise.
+	* resolve/rust-ast-resolve-base.cc
+	(ResolverBase::visit): Likewise.
+	* resolve/rust-ast-resolve-base.h:
+	(ResolverBase::visit): Likewise.
+	* resolve/rust-early-name-resolver.cc
+	(EarlyNameResolver::visit): Likewise.
+	* resolve/rust-early-name-resolver.h:
+	(EarlyNameResolver::visit): Likewise.
+	* util/rust-attributes.cc
+	(AttributeChecker::visit): Likewise.
+	(check_doc_attribute): Handle AttrInputType::MACRO.
+	* util/rust-attributes.h:
+	(AttributeChecker::visit): Add AttrInputMacro visitor.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-macro.h
+	(MacroInvocation::clone_macro_invocation_impl): Make public.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* util/rust-optional.h
+	(struct std::hash<Optional<T>>): New.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* util/rust-optional.h
+	(class Optional<T&>): Use pointers internally.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-ast-dump.cc (Dump::visit): Implement dump for
+	`TupleIndexExpr`.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* lex/rust-token.cc
+	(token_id_keyword_string): Return std::string reference.
+	* lex/rust-token.h
+	(token_id_keyword_string): Return std::string reference.
+
+2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>
+
+	* ast/rust-ast.h (Expr::as_expr_without_block): Remove.
+	(Expr::set_outer_attrs): Make public in base class.
+	* expand/rust-macro-expand.cc:
+	Add fixme comment for pre-existing bug.
+	* hir/tree/rust-hir.h: Remove Expr::as_expr_without_block.
+	* parse/rust-parse-impl.h (Parser::parse_lifetime): Use lifetime_from_token.
+	(Parser::lifetime_from_token): New method.
+	(Parser::null_denotation): Handle labelled loop expressions and for loop expressions.
+	(Parser::parse_loop_label): Make initial token a parameter.
+	(Parser::parse_labelled_loop_expr): Likewise.
+	(Parser::parse_for_loop_expr): Allow FOR token to already be skipped.
+	(Parser::parse_expr): Handle expr_can_be_stmt.
+	(Parser::parse_expr_with_block): Remove.
+	(Parser::parse_expr_stmt_with_block): Remove.
+	(Parser::parse_expr_stmt_without_block): Remove.
+	(Parser::parse_expr_without_block): Remove.
+	(Parser::parse_stmt_or_expr_with_block): Remove.
+	(Parser::parse_expr_stmt): Use parse_expr directly.
+	(Parser::parse_match_expr): Likewise.
+	(Parser::parse_stmt): Use parse_expr_stmt in more cases.
+	(Parser::parse_stmt_or_expr):
+	Rename from parse_stmt_or_expr_without_block, use parse_expr directly.
+	(Parser::parse_block_expr): Update error message.
+	* parse/rust-parse.h: Update declarations.
+
+2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>
+
+	* ast/rust-ast-full-decls.h (class ExprStmtWithoutBlock): Remove.
+	(class ExprStmtWithBlock): Remove.
+	* ast/rust-stmt.h (class ExprStmtWithoutBlock): Remove.
+	(class ExprStmtWithBlock): Remove.
+	(class ExprStmt):
+	Make non-abstract, add common functionality from removed base classes.
+	* ast/rust-ast.h: Move to_stmt to base class.
+	* ast/rust-ast.cc (ExprStmtWithBlock::as_string): Remove.
+	* ast/rust-macro.h: Use new signature for to_stmt.
+	(ExprStmt::as_string): New method.
+	(ExprStmtWithoutBlock::as_string): Remove.
+	(BlockExpr::strip_tail_expr): Update for removed classes.
+	(ExprStmtWithoutBlock::accept_vis): Remove.
+	(ExprStmtWithBlock::accept_vis): Remove.
+	(ExprStmt::accept_vis): New method.
+	* ast/rust-ast-dump.cc (Dump::visit): Update for removed classes.
+	* ast/rust-ast-dump.h: Likewise.
+	* ast/rust-ast-collector.h: Likewise.
+	* ast/rust-ast-collector.cc (TokenStream::visit): Likewise.
+	* ast/rust-ast-visitor.h: Likewise.
+	* checks/errors/rust-feature-gate.h: Likewise.
+	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise.
+	* expand/rust-expand-visitor.h: Likewise.
+	* expand/rust-cfg-strip.cc (CfgStrip::visit): Likewise.
+	* expand/rust-cfg-strip.h: Likewise.
+	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
+	* hir/rust-ast-lower-base.h: Likewise.
+	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Likewise.
+	* hir/rust-ast-lower-stmt.h: Likewise.
+	* util/rust-attributes.cc (AttributeChecker::visit): Likewise.
+	* util/rust-attributes.h: Likewise.
+	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
+	* resolve/rust-ast-resolve-base.h: Likewise.
+	* resolve/rust-ast-resolve-stmt.h: Likewise.
+	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+	Likewise.
+	* resolve/rust-early-name-resolver.h: Likewise.
+	* parse/rust-parse-impl.h (Parser::parse_match_expr): Likewise.
+	(Parser::parse_stmt_or_expr_without_block): Likewise.
+	* parse/rust-parse.h: Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* lex/rust-token.cc
+	(token_id_is_keyword): New.
+	(token_id_keyword_string): New.
+	* lex/rust-token.h
+	(token_id_is_keyword): New.
+	(token_id_keyword_string): New.
+	* expand/rust-macro-expand.cc
+	(MacroExpander::match_fragment): Match keywords for ident fragment.
+	* parse/rust-parse-impl.h
+	(Parser::parse_identifier_or_keyword_token): Add.
+	* parse/rust-parse.h
+	(Parser::parse_identifier_or_keyword_token): Add.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (dispatch_float_literals): Invert
+	suffix condition.
+	(dispatch_integer_literals): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (convert): Fix style.
+	(from_ident): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (dispatch_float_literals): Make
+	input immutable.
+	(dispatch_integer_literals): Likewise.
+	(convert): Likewise.
+	* util/rust-token-converter.h (convert): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (from_tokenstream): Add
+	conversion of Ident structures.
+	(from_ident): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (from_literal): Add function
+	implementation.
+	(string_literal): String literal specific handler.
+	(byte_string_literal): Byte string specific handler.
+	(unsigned_literal): Unsigned literal specific handler.
+	(signed_literal): Signed literal specific handler.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (from_punct): Add conversion
+	implementation.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (dispatch_float_literals): Accept
+	const_TokenPtr instead of TokenPtr.
+	(dispatch_integer_literals): Likewise.
+	(convert): Accept vector of const_TokenPtr instead of a vector
+	of TokenPtr.
+	* util/rust-token-converter.h (convert): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (from_tokenstream): Add vector
+	for joined punct accumulation.
+	(from_ident): Accept const pointer vector.
+	(from_literal): Likewise.
+	(from_punct): Likewise.
+	(from_group): Likewise.
+	(from_tokentree): Likewise.
+	(convert): Likewise.
+	* util/rust-token-converter.h (convert): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (from_tokenstream): Add call to
+	from_tokentree.
+	(from_tokentree): Add implementation, from the from_tokenstream
+	function.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (from_punct): Add group
+	conversion.
+	(from_group): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (to_tokenstream): Change function
+	name from to_tokenstream to convert.
+	(convert): Likewise.
+	(from_tokenstream): Add tokenstream handler.
+	(from_ident): Add empty function.
+	(from_literal): Likewise.
+	(from_punct): Likewise.
+	(from_group): Likewise.
+	* util/rust-token-converter.h (to_tokenstream): Change function
+	name from to_tokenstream to convert.
+	(convert): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* util/rust-token-converter.cc (dispatch_float_literals): Remove
+	suffixed temporary variable.
+	(dispatch_integer_literals): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Make-lang.in: Add new rust-token-converter file.
+	* ast/rust-ast-collector.cc (pop_group): Function moved from
+	TokenCollector.
+	(dispatch_float_literals): Likewise.
+	(dispatch_integer_literals): Likewise.
+	(TokenCollector::collect): Removed function.
+	* ast/rust-ast-collector.h: Removed function prototype.
+	* util/rust-token-converter.cc: New file.
+	* util/rust-token-converter.h: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-collector.h (RUST_AST_TOKENSTREAM_H): Rename
+	headerguard from RUST_AST_TOKENSTREAM_H ...
+	(RUST_AST_COLLECTOR_H): ... to RUST_AST_COLLECTOR_H.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Make-lang.in: Change file name.
+	* ast/rust-ast-tokenstream.cc: Moved to...
+	* ast/rust-ast-collector.cc: ...here.
+	* ast/rust-ast-tokenstream.h: Moved to...
+	* ast/rust-ast-collector.h: ...here.
+	* rust-session-manager.cc: Change header name.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::TokenStream): Rename
+	TokenStream to TokenCollector.
+	(TokenCollector::TokenCollector): Likewise.
+	(TokenStream::collect_tokens): Likewise.
+	(TokenCollector::collect_tokens): Likewise.
+	(TokenStream::collect): Likewise.
+	(TokenCollector::collect): Likewise.
+	(TokenStream::visit): Likewise.
+	(TokenCollector::visit): Likewise.
+	(TokenStream::visit_items_joined_by_separator): Likewise.
+	(TokenCollector::visit_items_joined_by_separator): Likewise.
+	(TokenStream::visit_as_line): Likewise.
+	(TokenCollector::visit_as_line): Likewise.
+	(TokenStream::visit_items_as_lines): Likewise.
+	(TokenCollector::visit_items_as_lines): Likewise.
+	(TokenStream::visit_items_as_block): Likewise.
+	(TokenCollector::visit_items_as_block): Likewise.
+	(TokenStream::trailing_comma): Likewise.
+	(TokenCollector::trailing_comma): Likewise.
+	(TokenStream::newline): Likewise.
+	(TokenCollector::newline): Likewise.
+	(TokenStream::indentation): Likewise.
+	(TokenCollector::indentation): Likewise.
+	(TokenStream::increment_indentation): Likewise.
+	(TokenCollector::increment_indentation): Likewise.
+	(TokenStream::decrement_indentation): Likewise.
+	(TokenCollector::decrement_indentation): Likewise.
+	(TokenStream::visit_closure_common): Likewise.
+	(TokenCollector::visit_closure_common): Likewise.
+	(TokenStream::visit_loop_common): Likewise.
+	(TokenCollector::visit_loop_common): Likewise.
+	(TokenStream::visit_function_common): Likewise.
+	(TokenCollector::visit_function_common): Likewise.
+	* ast/rust-ast-tokenstream.h (class TokenStream): Likewise.
+	(class TokenCollector): Likewise.
+	* rust-session-manager.cc (Session::dump_tokenstream): Rename
+	token vector for clearer intent.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (dispatch_float_literals): Add
+	dispatch function for floating point literals.
+	(TokenStream::collect): Add call to dispatcher.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (dispatch_integer_literals):
+	Add a static function to dispatch depending on the core type.
+	(TokenStream::collect): Add call to dispatch function.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::collect): Add
+	conversion for byte string and string.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::collect): Add Ident
+	conversion.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::collect): Add joint
+	punct token conversion.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::collect): Add
+	conversion for single punctuation tokens.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (pop_group): Add a function to
+	easily collect a group from a given stack at the end of it.
+	(TokenStream::collect): Collect tokens as a rust compatible
+	Tokenstream type.
+	* ast/rust-ast-tokenstream.h (RUST_AST_TOKENSTREAM_H): Move
+	includes to stay constrained by guards.
+
+2024-01-16  M V V S Manoj Kumar  <mvvsmanojkumar@gmail.com>
+
+	* ast/rust-ast-full-decls.h (enum class): Added declaration.
+	(struct AnonConst): Added declaration.
+	(struct InlineAsmRegOrRegClass): Added declaration.
+	(struct InlineAsmOperand): Added declaration.
+	(struct InlineAsmPlaceHolder): Added declaration.
+	(struct InlineAsmTemplatePiece): Added declaration.
+	(struct TupleClobber): Added declaration.
+	(struct TupleTemplateStr): Added declaration.
+	* ast/rust-expr.h (class InlineAsm): Defined all it's data members outside.
+	(enum class InlineAsmOptions): Converted this to a enum class so we could use it in the HIR.
+	(struct AnonConst): Defined it independent of the AST::InlineAsm node.
+	(struct InlineAsmRegOrRegClass): Defined it independent of the AST::InlineAsm node.
+	(struct InlineAsmOperand): Defined it independent of the AST::InlineAsm node.
+	(struct InlineAsmPlaceHolder): Defined it independent of the AST::InlineAsm node.
+	(struct InlineAsmTemplatePiece): Defined it independent of the AST::InlineAsm node.
+	(struct TupleClobber): Defined it independent of the AST::InlineAsm node.
+	(struct TupleTemplateStr): Defined it independent of the AST::InlineAsm node.
+	* hir/tree/rust-hir-expr.h (class InlineAsmReg): Added defination.
+	(class InlineAsmRegClass): Added defination.
+	(struct InlineAsmRegOrRegClass): Added defination.
+	(class InlineAsm): Added defination.
+	* hir/tree/rust-hir-full-decls.h (class InlineAsmReg): Added declaration.
+	(class InlineAsmRegClass): Added declaration.
+	(struct InlineAsmRegOrRegClass): Added declaration.
+	(class InlineAsm): Added declaration.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-base.cc: track return type in fncontext
+	* backend/rust-compile-context.h (struct fncontext): likewise
+	* backend/rust-compile-expr.cc (CompileExpr::visit): apply coercion site
+	(CompileExpr::generate_closure_function): update push_context
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-base.cc (HIRCompileBase::compile_function_body):
+	add missing coercion_site codegen
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-expr.cc (CompileExpr::visit): refactr
+	(CompileExpr::get_fn_addr_from_dyn): likewise
+	(CompileExpr::get_receiver_from_dyn): likewise
+	(CompileExpr::type_cast_expression): likewise
+	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): likewise
+	(TyTyResolveCompile::create_dyn_obj_record): likewise
+	(TyTyResolveCompile::create_slice_type_record): likewise
+	(TyTyResolveCompile::create_str_type_record): likewise
+	* backend/rust-compile-type.h: likewise
+	* backend/rust-compile.cc (HIRCompileBase::coercion_site1): likewise
+	(HIRCompileBase::coerce_to_dyn_object): refactor
+	* backend/rust-tree.h (SLICE_FLAG): removed
+	(SLICE_TYPE_P): removed
+	(RS_DST_FLAG): new flag
+	(RS_DST_FLAG_P): new predicate
+	* typecheck/rust-tyty.cc (ReferenceType::is_dyn_object): new helper
+	(ReferenceType::is_dyn_obj_type): likewise
+	(PointerType::is_dyn_object): likewise
+	(PointerType::is_dyn_obj_type): likewise
+	* typecheck/rust-tyty.h (class DynamicObjectType): moved up
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): add filter
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-base.cc (HIRCompileBase::compile_function_body): use unit_expression
+	(HIRCompileBase::unit_expression): new helper
+	* backend/rust-compile-base.h: update prototype
+	* backend/rust-compile-block.cc (CompileBlock::visit): use unit_expression
+	* backend/rust-compile-expr.cc (CompileExpr::visit): likewise
+	(CompileExpr::generate_closure_function): likewise
+	* backend/rust-compile-implitem.cc (CompileTraitItem::visit): cleanup
+	* backend/rust-compile-item.cc (CompileItem::visit): likewise
+	* backend/rust-compile-pattern.cc (CompilePatternLet::visit): likewise
+	* backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve): likewise
+	* backend/rust-compile-type.cc (TyTyResolveCompile::get_unit_type): new helper
+	(TyTyResolveCompile::visit): use new unit_type helper
+	* backend/rust-compile-type.h: likewise
+	* rust-backend.h: simplify the return_expression
+	* rust-gcc.cc (Gcc_backend::function_type): likewise
+	(Gcc_backend::return_statement): likewise
+	* backend/rust-constexpr.cc (eval_constant_expression): remove bad assertion
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* checks/lints/rust-lint-unused-var.cc (UnusedVariables::Lint): use the decl not the expr
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* parse/rust-parse-impl.h
+	(Parser::parse_trait_impl_function_or_method):
+	Parse function/method qualifiers after "default".
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-base.cc: add missing compile_locals call
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-ast.h (class AttrInputMetaItemContainer): Run clang-format.
+	(class DelimTokenTree): Likewise.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* resolve/rust-early-name-resolver.cc (is_macro_use_module): New function.
+	(EarlyNameResolver::accumulate_escaped_macros): New function.
+	(EarlyNameResolver::go): Use `accumulate_escaped_macros`.
+	(EarlyNameResolver::visit): Likewise.
+	* resolve/rust-early-name-resolver.h: Declare `accumulate_escaped_macros`.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-ast.h: Add take_items() and set_items() method to Crate.
+	* ast/rust-item.h: Add take_items() and set_items() method to Module.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-ast.h (enum Kind): Add MODULE variant.
+	* ast/rust-item.h: Return Kind::MODULE in AST::Module::get_kind().
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-macro.cc (builtin_macro_from_string): Move function.
+	* ast/rust-macro.h (enum class): Move enum.
+	(builtin_macro_from_string): Move function.
+	* expand/rust-macro-builtins.cc (builtin_macro_from_string): New function.
+	(make_macro_path_str): Use new bi-map.
+	(parse_single_string_literal): Use new `BuiltinMacro` enum.
+	(MacroBuiltin::include_bytes_handler): Likewise.
+	(MacroBuiltin::include_str_handler): Likewise.
+	(MacroBuiltin::compile_error_handler): Likewise.
+	(MacroBuiltin::concat_handler): Likewise.
+	(MacroBuiltin::env_handler): Likewise.
+	(MacroBuiltin::include_handler): Likewise.
+	(MacroBuiltin::sorry): New function.
+	* expand/rust-macro-builtins.h (enum class): Move enum here.
+	(builtin_macro_from_string): New function declaration.
+	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Use
+	new function.
+	* util/rust-hir-map.cc (Mappings::insert_macro_def): Remove old
+	builtin macro map.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* expand/rust-macro-builtins.cc: Include bidirectional map.
+	* util/bi-map.h: New file.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-ast.cc
+	(BlockExpr::strip_tail_expr):
+	Try to take new tail expression from statements list.
+	* ast/rust-expr.h
+	(BlockExpr::strip_tail_expr):
+	Replace definition with only declaration.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-ast.h
+	(Stmt::is_expr): New.
+	* ast/rust-stmt.h
+	(ExprStmt::is_expr): New.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* expand/rust-macro-substitute-ctx.cc
+	(SubstituteCtx::substitute_repetition): Fix out-of-bounds.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Make-lang.in: Link against the static libproc_macro.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lang.opt: Add frust-extern option.
+	* rust-session-manager.cc (Session::handle_extern_option): Add
+	frust-extern option handler.
+	* rust-session-manager.h (struct Session): Add an unordered map
+	to store library name and locations.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* parse/rust-parse-impl.h
+	(Parser::parse_generic_params):
+	Handle parameter parsing error.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc: update for op overload
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): use the predicate
+	(TypeCheckExpr::resolve_segments): cleanup
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-trait-reference.cc (AssociatedImplTrait::AssociatedImplTrait):
+	bind the predicate
+	(AssociatedImplTrait::get_trait): remove
+	(AssociatedImplTrait::get_predicate): new getter
+	* typecheck/rust-hir-trait-reference.h: bind predicate
+	* typecheck/rust-hir-type-check-item.cc: update ctor
+	* typecheck/rust-type-util.cc (lookup_associated_impl_block): new function
+	* typecheck/rust-type-util.h (class BaseType): remove unused forward decl
+	(lookup_associated_impl_block): new helper
+	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::is_equal): new
+	* typecheck/rust-tyty-subst.cc (SubstitutionRef::lookup_associated_impl): use new helper
+	(SubstitutionRef::monomorphize): update usage/error handling
+	* typecheck/rust-tyty-subst.h: remove old prototype
+	* typecheck/rust-tyty.h: add is_equal decl
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* typecheck/rust-hir-type-check-pattern.cc
+	(TypeCheckPattern::visit): Type check StructPatternFieldIdentPat.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/rust-ast-lower-pattern.cc
+	(ASTLoweringPattern::visit): Lower StructPatternFieldIdentPat.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::resolve_fn_trait_call):
+	return the assoicated predicate
+	* typecheck/rust-hir-type-check-expr.h: update prototype
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* hir/rust-ast-lower-implitem.h: add missing where clause lowering
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* hir/tree/rust-hir-item.h: add get_locus() const
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/tree/rust-hir-pattern.h
+	(StructPatternFieldIdentPat::get_identifier): New.
+	(StructPatternFieldIdentPat::get_pattern): New.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* ast/rust-ast-dump.cc (Dump::visit): print parentheses around
+	unique expression operand.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust-session-manager.cc
+	(Session::enable_dump): Fix error messages.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-unify.cc (UnifyRules::emit_abi_mismatch): new error method
+	(UnifyRules::expect_fndef): add ABI check
+	* typecheck/rust-unify.h: prototype for new error method
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* util/rust-abi.cc (get_abi_from_string): add ABI mapping
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* hir/tree/rust-hir-pattern.h: add missing get_mutability
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+	use new ClosureParamInfer on untyped parameters
+	* typecheck/rust-hir-type-check-pattern.cc (ClosureParamInfer::Resolve): interface
+	(ClosureParamInfer::ClosureParamInfer): constructor
+	(ClosureParamInfer::visit): visitors for each pattern
+	* typecheck/rust-hir-type-check-pattern.h (class ClosureParamInfer): new visitor
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-pattern.h: cleanup
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+	return so we dont hit undefined behaviour
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-implitem.h: remove includes
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-item.cc (CompileItem::visit): remove bad checks
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* lang.opt: add lang option flag
+	* rust-lang.cc (grs_langhook_init_options_struct): enable by default
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::operator=):
+	we are done if other is in an error state
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): verify it is a method
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): use new interface
+	* typecheck/rust-hir-type-check-base.h: update prototype to include Self
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): lifewise
+	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::resolve_impl_block_substitutions):
+	likewise
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): likewise
+	(TypeCheckExpr::resolve_segments): likewise
+	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
+	(TypeResolveGenericParam::visit): likewise
+	(ResolveWhereClauseItem::visit): likewise
+	* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): likewise
+	(TypeBoundPredicate::apply_generic_arguments): likewise
+	(TypeBoundsMappings::lookup_predicate): likewise
+	* typecheck/rust-tyty-bounds.h: likewise
+	* typecheck/rust-tyty.h:likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check.h: New error state and missing copy implementations
+	* typecheck/rust-typecheck-context.cc (TypeCheckContextItem::TypeCheckContextItem):
+	missing copy ctor
+	(TypeCheckContextItem::operator=): missing copy implementation
+	(TypeCheckContextItem::get_error): new static function
+	(TypeCheckContextItem::is_error): new method
+	(TypeCheckContextItem::get_context_type): handle error state
+	(TypeCheckContextItem::get_defid): handle error state
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check.h: new helper
+	* typecheck/rust-typecheck-context.cc (TypeCheckContext::have_function_context):
+	implementation
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check.h: Add prototype
+	* typecheck/rust-typecheck-context.cc (TypeCheckContextItem::get_defid): implementation
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc: refactor
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-autoderef.cc: don't take a reference
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
+	* typecheck/rust-hir-type-check.h: remove reference
+	* typecheck/rust-typecheck-context.cc (TypeCheckContext::pop_return_type): likewise
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* resolve/rust-ast-resolve-pattern.cc
+	(PatternDeclaration::visit): Handle StructPatternFieldIdentPat.
+
+2024-01-16  TieWay59  <tieway59@foxmail.com>
+
+	PR translation/108890
+	* lang.opt: Fix translation mistakes 2023 in
+	GCC/Rust [PR108890]
+	(line 67): change the inconsistent tab to spaces
+	(line 75): wrap bare placeholder `integer`
+	(line 79): remove redundant text of `Choose which`
+	(line 96): remove redundant text of `Choose which`
+	(line 112): remove redundant `Flag to`
+	(line 124): correct the exclusive term `When to stop`
+	(line 124): correct typo of `copimlation`
+
+2024-01-16  M V V S Manoj Kumar  <mvvsmanojkumar@gmail.com>
+
+	* parse/rust-parse-impl.h (Parser::debug_dump_ast_output): Removed this funtion.
+	* rust-session-manager.cc (Session::enable_dump): Removed else if (arg == "parse").
+	(Session::compile_crate): Removed calls of dump_ast and dump_ast_expanded.
+	(Session::dump_ast): Removed this function.
+	(Session::dump_ast_expanded): Removed this function.
+	* rust-session-manager.h (struct CompileOptions): Removed the PARSER_AST_DUMP option.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_reference_pattern): Do not
+	call into `parse_pattern` anymore.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/rust-ast-lower-pattern.cc
+	(ASTLoweringPattern::translate): Add is_let_top_level parameter.
+	(ASTLoweringPattern::visit): Handle is_let_top_level.
+	* hir/rust-ast-lower-pattern.h
+	(class ASTLoweringPattern): Add is_let_top_level.
+	* hir/rust-ast-lower-stmt.cc
+	(ASTLoweringStmt::visit): Set is_let_top_level.
+
+2024-01-16  Zheyuan Chen  <sephirotheca17@gmail.com>
+
+	* ast/rust-ast-dump.cc: fix bad formatting for associated type.
+
+2024-01-16  Sergey Bugaev  <bugaevc@gmail.com>
+
+	* hir/rust-ast-lower-expr.h, hir/rust-ast-lower-expr.cc:
+	Lower AST::ErrorPropagationExpr to HIR::ErrorPropagationExpr
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix scope
+	resolution token output.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Keep
+	associated type.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit_function_common):
+	Fix function body output.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_outer_attribute): Fix
+	attribute status.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lex/rust-token.cc (Token::as_string): Fix lifetime string
+	representation.
+
+2024-01-16  Sergey Bugaev  <bugaevc@gmail.com>
+
+	* resolve/rust-ast-resolve-expr.cc: Add "break rust" Easter egg
+
+2024-01-16  Sergey Bugaev  <bugaevc@gmail.com>
+
+	* resolve/rust-ast-resolve-expr.h,
+	resolve/rust-ast-resolve-expr.cc: Add ResolveExpr::funny_error
+
+2024-01-16  Sergey Bugaev  <bugaevc@gmail.com>
+
+	* ast/rust-ast.h: Add AST::Kind::IDENTIFIER
+
+2024-01-16  Sergey Bugaev  <bugaevc@gmail.com>
+
+	* ast/rust-ast.h (Kind): Convert into a C++ enum class
+	* expand/rust-macro-builtins.cc: Adapt to the change
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc
+	(TypeCheckExpr::visit): Add implementation for IfLetExprConseqElse.
+	* typecheck/rust-hir-type-check-expr.h:
+	(TypeCheckExpr::visit): Remove stub implementation for IfLetExprConseqElse.
+	* hir/rust-ast-lower-expr.cc
+	(ASTLoweringExpr::visit): Lower IfLetExpr{,ConseqElse}.
+	* hir/rust-ast-lower-expr.h:
+	(ASTLoweringExpr::visit): Likewise.
+	* hir/rust-ast-lower-block.h
+	(ASTLoweringIfLetBlock::visit): Lower IfLetExprConseqElse.
+	(ASTLoweringExprWithBlock::visit): Likewise.
+	* hir/rust-ast-lower.cc
+	(ASTLoweringIfLetBlock::visit): Lower IfLetExprConseqElse.
+	* hir/tree/rust-hir-expr.h
+	(IfLetExprConseqElse::IfLetExprConseqElse): Make constructor more general.
+	(IfLetExprConseqElse::vis_else_block): Add.
+	(IfLetExprConseqElse::get_else_block): Add.
+	* resolve/rust-ast-resolve-expr.cc
+	(ResolveExpr::visit): Add IfLetExprConseqElse visitor.
+	* resolve/rust-ast-resolve-expr.h
+	(ResolveExpr::visit): Add IfLetExprConseqElse visitor.
+
+2024-01-16  Sebastian Kirmayer  <gnu@kirmayer.eu>
+
+	* parse/rust-parse-impl.h
+	(Parser<ManagedTokenSource>::parse_macro_match_repetition):
+	reject separator in `?` repetition
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-expr.h
+	(class IfLetExprConseqElse): Make else_block ExprWithBlock.
+	(class IfLetExprConseqIf): Remove.
+	(class IfLetExprConseqIfLet): Remove.
+	* ast/rust-ast-full-decls.h
+	(class IfLetExprConseqIf): Remove.
+	(class IfLetExprConseqIfLet): Remove.
+	* ast/rust-ast.cc
+	(IfLetExprConseqElse::as_string): Adjust output.
+	(IfLetExprConseqIf::as_string): Remove.
+	(IfLetExprConseqIfLet::as_string): Remove.
+	(IfLetExprConseqIf::accept_vis): Remove.
+	(IfLetExprConseqIfLet::accept_vis): Remove.
+	* ast/rust-ast-visitor.h
+	(ASTVisitor::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	* ast/rust-ast-dump.cc
+	(Dump::visit): Likewise.
+	* ast/rust-ast-dump.h:
+	(Dump::visit): Likewise.
+	* ast/rust-ast-tokenstream.cc
+	(TokenStream::visit): Likewise.
+	* ast/rust-ast-tokenstream.h
+	(TokenStream::visit): Likewise.
+	* util/rust-attributes.cc
+	(AttributeChecker::visit): Likewise.
+	* util/rust-attributes.h:
+	(AttributeChecker::visit): Likewise.
+	* resolve/rust-early-name-resolver.cc
+	(EarlyNameResolver::visit): Likewise.
+	* resolve/rust-early-name-resolver.h
+	(EarlyNameResolver::visit): Likewise.
+	* resolve/rust-ast-resolve-base.h
+	(ResolverBase::visit): Likewise.
+	* resolve/rust-ast-resolve-base.cc
+	(ResolverBase::visit): Likewise.
+	* checks/errors/rust-feature-gate.h
+	(FeatureGate::visit): Likewise.
+	* expand/rust-cfg-strip.cc
+	(CfgStrip::visit): Likewise.
+	* expand/rust-cfg-strip.h:
+	(CfgStrip::visit): Likewise.
+	* expand/rust-expand-visitor.cc
+	(ExpandVisitor::visit): Likewise.
+	* expand/rust-expand-visitor.h
+	(ExpandVisitor::visit): Likewise.
+	* hir/rust-ast-lower-base.cc
+	(ASTLoweringBase::visit): Likewise.
+	* hir/rust-ast-lower-base.h:
+	(ASTLoweringBase::visit): Likewise.
+	* parse/rust-parse-impl.h
+	(Parser::parse_if_let_expr): Replace IfLetExprConseqIf{,Let} with IfLetExprConseqElse.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add struct
+	name and curly braces to output tokenstream.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* parse/rust-parse-impl.h
+	(Parser::parse_macro_match): Handle underscore.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/tree/rust-hir-full-decls.h
+	(class ExprStmtWithoutBlock): Remove.
+	(class ExprStmtWithBlock): Remove.
+	* hir/tree/rust-hir-stmt.h
+	(class ExprStmt):
+	Add remaining ExprStmtWith{,out}Block functionality.
+	(class ExprStmtWithoutBlock): Remove.
+	(class ExprStmtWithBlock): Remove.
+	* hir/rust-ast-lower-stmt.cc
+	(ASTLoweringStmt::visit):
+	Lower to HIR::ExprStmt instead of deriving class.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-compile-stmt.cc
+	(CompileStmt::visit): Unify ExprStmtWith{,out}Block visitors.
+	* backend/rust-compile-stmt.h
+	(CompileStmt::visit): Likewise.
+	* backend/rust-compile-item.h
+	(CompileItem::visit): Likewise.
+	* hir/rust-hir-dump.cc
+	(Dump::visit): Likewise.
+	* hir/rust-hir-dump.h
+	(Dump::visit): Likewise.
+	* hir/tree/rust-hir-stmt.h
+	(ExprStmt::accept_vis): Add.
+	(ExprStmtWithoutBlock::accept_vis): Remove.
+	(ExprStmtWithBlock::accept_vis): Remove.
+	* hir/tree/rust-hir.cc
+	(ExprStmt::accept_vis): Add.
+	(ExprStmtWithoutBlock::accept_vis): Remove.
+	(ExprStmtWithBlock::accept_vis): Remove.
+	* hir/tree/rust-hir-visitor.h
+	(HIRFullVisitor::visit): Likewise.
+	(HIRFullVisitorBase::visit): Likewise.
+	(HIRStmtVisitor::visit): Likewise.
+	* checks/errors/rust-const-checker.cc
+	(ConstChecker::visit): Likewise.
+	* checks/errors/rust-const-checker.h
+	(ConstChecker::visit): Likewise.
+	* checks/errors/rust-unsafe-checker.cc
+	(UnsafeChecker::visit): Likewise.
+	* checks/errors/rust-unsafe-checker.h
+	(UnsafeChecker::visit): Likewise.
+	* checks/errors/privacy/rust-privacy-reporter.cc
+	(PrivacyReporter::visit): Likewise.
+	* checks/errors/privacy/rust-privacy-reporter.h
+	(PrivacyReporter::visit): Likewise.
+	* checks/lints/rust-lint-marklive.h
+	(MarkLive::visit): Likewise.
+	* typecheck/rust-hir-type-check-stmt.cc
+	(TypeCheckStmt::visit): Likewise.
+	* typecheck/rust-hir-type-check-stmt.h
+	(TypeCheckStmt::visit): Likewise.
+	* typecheck/rust-tycheck-dump.h
+	(TypeResolverDump::visit): Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/tree/rust-hir-stmt.h
+	(ExprStmt::expr): Add field.
+	(ExprStmt::get_expr): Add method.
+	(ExprStmt::ExprStmt): Add copy/move constructors, modify existing constructor.
+	(ExprStmt::operator=): Add assignment operator.
+	(ExprStmtWithoutBlock::expr): Remove field.
+	(ExprStmtWithoutBlock::get_expr): Remove method.
+	(ExprStmtWithoutBlock::ExprStmt):
+	Remove copy/move constructors, modify existing constructor.
+	(ExprStmtWithoutBlock::operator=): Remove assignment operator.
+	(ExprStmtWithBlock::expr): Remove field.
+	(ExprStmtWithBlock::get_expr): Remove method.
+	(ExprStmtWithBlock::ExprStmt): Remove copy/move constructors, modify existing constructor.
+	(ExprStmtWithBlock::operator=): Remove assignment operator.
+	(ExprStmt::as_string): Add method.
+	(ExprStmtWithBlock::as_string): Remove method.
+	(ExprStmtWithoutBlock::as_string): Remove method.
+	* hir/tree/rust-hir.cc
+	(ExprStmt::as_string): Add method.
+	(ExprStmtWithBlock::as_string): Remove method.
+	(ExprStmtWithoutBlock::as_string): Remove method.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-expr.h
+	(class IfExprConseqElse): Make else_block ExprWithBlock.
+	(class IfExprConseqIf): Remove.
+	(class IfExprConseqIfLet): Remove.
+	* ast/rust-ast-full-decls.h
+	(class IfExprConseqIf): Remove.
+	(class IfExprConseqIfLet): Remove.
+	* ast/rust-ast.cc
+	(IfExprConseqElse::as_string): Adjust output.
+	(IfExprConseqIf::as_string): Remove.
+	(IfExprConseqIfLet::as_string): Remove.
+	(IfExprConseqIf::accept_vis): Remove.
+	(IfExprConseqIfLet::accept_vis): Remove.
+	* ast/rust-ast-visitor.h
+	(ASTVisitor::visit): Remove IfExprConseqIf{,Let} visitors.
+	* ast/rust-ast-tokenstream.cc
+	(TokenStream::visit): Likewise.
+	* ast/rust-ast-tokenstream.h
+	(TokenStream::visit): Likewise.
+	* ast/rust-ast-dump.cc
+	(Dump::visit): Likewise.
+	* ast/rust-ast-dump.h
+	(Dump::visit): Likewise.
+	* checks/errors/rust-feature-gate.h
+	(FeatureGate::visit): Likewise.
+	* util/rust-attributes.cc
+	(AttributeChecker::visit): Likewise.
+	* util/rust-attributes.h
+	(AttributeChecker::visit): Likewise.
+	* resolve/rust-early-name-resolver.cc
+	(EarlyNameResolver::visit): Likewise.
+	* resolve/rust-early-name-resolver.h
+	(EarlyNameResolver::visit): Likewise.
+	* resolve/rust-ast-resolve-base.h
+	(ResolverBase::visit): Likewise.
+	* resolve/rust-ast-resolve-base.cc
+	(ResolverBase::visit): Likewise.
+	* resolve/rust-ast-resolve-expr.h
+	(ResolveExpr::visit): Remove IfExprConseqIf visitor.
+	* resolve/rust-ast-resolve-expr.cc
+	(ResolveExpr::visit): Likewise.
+	* expand/rust-cfg-strip.cc
+	(CfgStrip::visit): Remove IfExprConseqIf{,Let} visitors.
+	* expand/rust-cfg-strip.h
+	(CfgStrip::visit): Likewise.
+	* expand/rust-expand-visitor.cc
+	(ExpandVisitor::visit): Likewise.
+	* expand/rust-expand-visitor.h
+	(ExpandVisitor::visit): Likewise.
+	* hir/rust-ast-lower-base.cc
+	(ASTLoweringBase::visit): Likewise.
+	* hir/rust-ast-lower-base.h
+	(ASTLoweringBase::visit): Likewise.
+	* hir/rust-ast-lower-block.h
+	(ASTLoweringIfBlock::visit): Remove IfExprConseqIf visitor.
+	(ASTLoweringExprWithBlock::visit): Likewise.
+	* hir/rust-ast-lower.cc
+	(ASTLoweringIfBlock::visit):
+	Remove IfExprConseqIf visitor, adjust IfExprConseqElse lowering.
+	* hir/rust-ast-lower-expr.h
+	(ASTLoweringExpr::visit): Remove IfExprConseqIf visitor.
+	* hir/rust-ast-lower-expr.cc
+	(ASTLoweringExpr::visit): Likewise.
+	* parse/rust-parse-impl.h
+	(Parser::parse_if_expr): Replace IfExprConseqIf{,Let} with IfExprConseqElse.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix inner
+	attribute tokenstream output.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* ast/rust-ast-dump.cc (Dump::debug): New.
+	* ast/rust-ast-dump.h (Dump::debug): Untemplate it.
+	(debug): New.
+	* ast/rust-ast.h (class Visitable): New.
+	(class TokenTree): Inherit from Visitable.
+	(class MacroMatch): Likewise.
+	(class AttrInput): Likewise.
+	(class MetaItemInner): Likewise.
+	(class Pattern): Likewise.
+	(classTypeParamBound): Likewise.
+	(class GenericParam): Likewise.
+	(class TraitItem): Likewise.
+	(classInherentImplItem): Likewise.
+	(class TraitImplItem): Likewise.
+	(class ExternalItem): Likewise.
+	(class SingleASTNode): Likewise.
+
+2024-01-16  Thomas Schwinge  <thomas@codesourcery.com>
+
+	* rust-lang.cc (grs_langhook_type_for_mode): Placate clang-format.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h: Add boolean for differenciation.
+	* parse/rust-parse-impl.h (Parser::parse_doc_comment): Change
+	function interface to make code cleaner. It should return a body
+	instead of the whole attribute.
+	(Parser::parse_inner_attribute): Specify the inner status of the
+	node.
+	(Parser::parse_attribute_body): Change function interface to
+	make the code cleaner much like parse_doc_comment.
+	(Parser::parse_outer_attribute): Specify outer status of the
+	node.
+	* parse/rust-parse.h: Update functions prototypes.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile):
+	reuse resolve_method_address to monomorphize the call if required
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
+	allow matching against unimplemented trait item bounds
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-path-probe.cc: dont subst with a dynamic object
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address): moved here
+	* backend/rust-compile-base.h: refactored prototype
+	* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address): refactor
+	* backend/rust-compile-expr.h: likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): remove unused
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): call destructure
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address):
+	call path probe impl trait
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Add call
+	to attribute expansion function.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.cc (ExpandVisitor::visit_outer_attrs):
+	Change condition order.
+	(ExpandVisitor::visit_inner_using_attrs): Likewise.
+	(ExpandVisitor::visit_attrs_with_derive): Likewise.
+	(ExpandVisitor::is_builtin): Add builtin identification
+	function.
+	* expand/rust-expand-visitor.h: Add function prototype.
+	* util/rust-attributes.cc: Add missing rustc_builtin_macro
+	attribute.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_struct_fields):
+	Add call to expand structu fields.
+	(ExpandVisitor::expand_function_params): Add call to expand
+	function parameters.
+	(ExpandVisitor::expand_closure_params): Add call to expand
+	closure parameters.
+	(ExpandVisitor::visit): Add calls for item outer attribute
+	expansions.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_outer_attribute):
+	Stub for a single attribute expansion.
+	(ExpandVisitor::visit_outer_attrs): Visit the attributes to
+	expand on a given item.
+	* expand/rust-expand-visitor.h: Add function prototypes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast.h: Add getter to Expr class.
+	* ast/rust-expr.h: Add override attribute to existing getters.
+	Also implement it for RangeExpr, attempting to retrieve outer
+	attributes on those types will crash the compiler.
+	* ast/rust-macro.h: Add override attribute to existing getters.
+	* ast/rust-path.h: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Add call
+	to inner attribute stub.
+	(ExpandVisitor::expand_inner_attribute): Expand one single
+	attribute.
+	(ExpandVisitor::visit_inner_using_attrs): Expand a given item
+	using a vector of attributes.
+	(ExpandVisitor::visit_inner_attrs): Visit inner attributes of a
+	given item.
+	* expand/rust-expand-visitor.h: Add function prototypes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Add call
+	to derive expander.
+	(ExpandVisitor::expand_derive): Expand a single derive.
+	(ExpandVisitor::visit_attrs_with_derive): Visit an item with
+	derive attributes.
+	(ExpandVisitor::is_derive): Identify a derive attribute.
+	* expand/rust-expand-visitor.h: Add function prototypes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix ICE.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Remove
+	default separator.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Visit inner
+	attributes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Change token
+	type.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix existing
+	and implement remaining attribute visitors.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor
+	to the union's outer attributes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add call to
+	inner attribute visitor.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix ICE.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Make comma
+	mandatory.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Remove
+	additional semicolon output.
+	* ast/rust-ast-tokenstream.h: Change block visitor prototype
+	with a default value for trailing tokens.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Make-lang.in: Add two new files to the list of sources.
+	* ast/rust-ast-full.h: Add new ast formatting header.
+	* ast/rust-ast.cc (enum indent_mode): Move formatting function
+	to it's own file.
+	(indent_spaces): Likewise.
+	(get_string_in_delims): Likewise.
+	(enum AttrMode): Likewise.
+	(get_mode_dump_desc): Likewise.
+	(append_attributes): Likewise.
+	(unquote_string): Likewise.
+	(GroupedExpr::as_string): Move pattern implementation to it's
+	own file.
+	(RangePattern::as_string): Likewise.
+	(RangePatternBoundLiteral::as_string): Likewise.
+	(SlicePattern::as_string): Likewise.
+	(AltPattern::as_string): Likewise.
+	(TuplePatternItemsMultiple::as_string): Likewise.
+	(TuplePatternItemsRanged::as_string): Likewise.
+	(TuplePattern::as_string): Likewise.
+	(StructPatternField::as_string): Likewise.
+	(StructPatternFieldIdent::as_string): Likewise.
+	(StructPatternFieldTuplePat::as_string): Likewise.
+	(StructPatternFieldIdentPat::as_string): Likewise.
+	(StructPatternElements::as_string): Likewise.
+	(StructPattern::as_string): Likewise.
+	(LiteralPattern::as_string): Likewise.
+	(ReferencePattern::as_string): Likewise.
+	(IdentifierPattern::as_string): Likewise.
+	(TupleStructItemsNoRange::as_string): Likewise.
+	(TupleStructItemsRange::as_string): Likewise.
+	(TupleStructPattern::as_string): Likewise.
+	(GroupedExpr::accept_vis): Likewise.
+	(LiteralPattern::accept_vis): Likewise.
+	(IdentifierPattern::accept_vis): Likewise.
+	(WildcardPattern::accept_vis): Likewise.
+	(RestPattern::accept_vis): Likewise.
+	(RangePatternBoundLiteral::accept_vis): Likewise.
+	(RangePatternBoundPath::accept_vis): Likewise.
+	(RangePatternBoundQualPath::accept_vis): Likewise.
+	(RangePattern::accept_vis): Likewise.
+	(ReferencePattern::accept_vis): Likewise.
+	(StructPatternFieldTuplePat::accept_vis): Likewise.
+	(StructPatternFieldIdentPat::accept_vis): Likewise.
+	(StructPatternFieldIdent::accept_vis): Likewise.
+	(StructPattern::accept_vis): Likewise.
+	(TupleStructItemsNoRange::accept_vis): Likewise.
+	(TupleStructItemsRange::accept_vis): Likewise.
+	(TupleStructPattern::accept_vis): Likewise.
+	(TuplePatternItemsMultiple::accept_vis): Likewise.
+	(TuplePatternItemsRanged::accept_vis): Likewise.
+	(TuplePattern::accept_vis): Likewise.
+	(GroupedPattern::accept_vis): Likewise.
+	(SlicePattern::accept_vis): Likewise.
+	(AltPattern::accept_vis): Likewise.
+	* ast/rust-ast-formatting.cc: New file.
+	* ast/rust-ast-formatting.h: New file.
+	* ast/rust-pattern.cc: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Make-lang.in: Add new file for rust-path implementation.
+	* ast/rust-ast.cc (PathInExpression::as_string): Move function
+	to the new file.
+	(PathPattern::as_string): Likewise.
+	(QualifiedPathInExpression::as_string): Likewise.
+	(ConstGenericParam::as_string): Likewise.
+	(QualifiedPathInType::as_string): Likewise.
+	(TypePath::as_string): Likewise.
+	(PathPattern::convert_to_simple_path): Likewise.
+	(TypePath::as_simple_path): Likewise.
+	(PathExprSegment::as_string): Likewise.
+	(GenericArgs::as_string): Likewise.
+	(GenericArgsBinding::as_string): Likewise.
+	(TypePath::to_trait_bound): Likewise.
+	(TypePathSegmentGeneric::as_string): Likewise.
+	(TypePathFunction::as_string): Likewise.
+	(TypePathSegmentFunction::as_string): Likewise.
+	(ConstGenericParam::accept_vis): Likewise.
+	(PathInExpression::accept_vis): Likewise.
+	(TypePathSegment::accept_vis): Likewise.
+	(TypePathSegmentGeneric::accept_vis): Likewise.
+	(TypePathSegmentFunction::accept_vis): Likewise.
+	(TypePath::accept_vis): Likewise.
+	(QualifiedPathInExpression::accept_vis): Likewise.
+	(QualifiedPathInType::accept_vis): Likewise.
+	(GenericArg::disambiguate_to_const): Likewise.
+	(GenericArg::disambiguate_to_type): Likewise.
+	* ast/rust-path.cc: New file.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-item.cc (CompileItem::visit): unwrap the constant expression
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* util/rust-lang-item.h
+	(RustLangItem::ItemType::FN): Add.
+	(RustLangItem::ItemType::FN_MUT): Add.
+	(RustLangItem::Parse): Handle FN and FN_MUT.
+	(RustLangItem::ToString): Handle FN and FN_MUT.
+
+2024-01-16  Emanuele Micheletti  <micheletti.emanuele@hotmail.com>
+
+	* typecheck/rust-casts.cc (TypeCastRules::cast_rules):
+	case INTEGRAL handles TypeKind::CHAR
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
+	add check for reference marker and type's in self params
+	(ResolveItem::visit): likewise
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path):
+	remove bad generics check
+	(TypeCheckExpr::resolve_segments): likewise
+	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* resolve/rust-ast-resolve-item.cc
+	(ResolveTraitItems::visit): add name resolution self param
+	(ResolveItem::visit): likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate): this is an empty
+	(TypeBoundPredicate::operator=): likewise
+	* typecheck/rust-tyty-subst.cc (SubstitutionArgumentMappings::empty): new interface
+	(SubstitutionArgumentMappings::is_error): this marks it as an error
+	* typecheck/rust-tyty-subst.h: update prototypes
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* checks/errors/privacy/rust-privacy-reporter.cc
+	(PrivacyReporter::check_base_type_privacy): allow error types to be permissive
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit_items_as_lines):
+	Handle trailing chars.
+	(TokenStream::visit_items_as_block): Likewise.
+	(TokenStream::visit): Fix visitor.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lex/rust-token.cc (Token::as_string): Add type hint output.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust-session-manager.cc (Session::enable_dump): Enable new
+	dump.
+	(Session::compile_crate): CLI argument parsing.
+	(Session::dump_tokenstream): Dump the tokenstream as a string in
+	the specified file.
+	* rust-session-manager.h (struct CompileOptions): Add
+	tokenstream dump option.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* lex/rust-token.cc (Token::as_string): Add as_string
+	implementation.
+	* lex/rust-token.h: Add as_string prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::TokenStream): Add
+	constructor.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::collect_tokens): Add
+	getter.
+	(TokenStream::go): Rename function.
+	(TokenStream::visit): Likewise.
+	* ast/rust-ast-tokenstream.h: Add collect prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Change
+	getter name.
+	* ast/rust-ast.cc (SimplePath::as_string): Change attribute
+	name.
+	* ast/rust-ast.h (class SimplePath): Refactor attribute name and
+	change getter name.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit_as_line): Add
+	formatting calls.
+	(TokenStream::visit_items_as_block): Likewise.
+	(TokenStream::newline): Add stub.
+	(TokenStream::indentation): Add stub.
+	(TokenStream::increment_indentation): Add stub.
+	(TokenStream::decrement_indentation): Add stub.
+	(TokenStream::visit): Add formatting calls.
+	(TokenStream::visit_function_common): Likewise.
+	* ast/rust-ast-tokenstream.h: Add stub prototypes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor
+	implementation.
+	* ast/rust-ast-tokenstream.h: Add additional function prototype.
+	* ast/rust-item.h: Add some getters.
+	* ast/rust-macro.h: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor.
+	* ast/rust-item.h: Add missing getters.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add
+	visitors.
+	(TokenStream::visit_closure_common): Merge common code for
+	closure visitors.
+	* ast/rust-ast-tokenstream.h: Add function prototype.
+	* ast/rust-expr.h: Add missing move attribute getter.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add
+	visitors.
+	(TokenStream::visit_loop_common): Merge common loop code.
+	* ast/rust-ast-tokenstream.h: Add function prototypes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Implement
+	visitor.
+	* ast/rust-ast-tokenstream.h: Add function prototype for missing
+	component.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::trailing_comma):
+	Output a trailing comma to the token stream according to the
+	configuration.
+	* ast/rust-ast-tokenstream.h: Add function prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Implement
+	visitors.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Implement
+	visitors.
+	* ast/rust-ast-tokenstream.h: Add function prototypes.
+	* ast/rust-ast.h: Add missing getters.
+	* ast/rust-expr.h: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Make-lang.in: Add rust-as-tokenstream to compile list.
+	* ast/rust-item.h: Add missing getter for location.
+	* ast/rust-ast-tokenstream.cc: Add ast visitor implementation.
+	* ast/rust-ast-tokenstream.h: New file.
+	* ast/rust-pattern.h: Add getter.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
+	Add implicit unit type as the return type when not specified
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* util/rust-attributes.cc: Add stable to the table of known attributes
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): return early on bad type
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::TypeCheckPattern):
+	remove assertion in favor of check
+	(TypeCheckPattern::visit): likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-expr.cc (CompileExpr::generate_closure_function):
+	when its not a block we dont have any ribs to generate locals from
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* parse/rust-parse-impl.h
+	(Parser<ManagedTokenSource>::parse_expr_without_block):
+	Remove direct array expression handling.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-item.h: Fix `Visibility::has_path()` implementation.
+	* checks/errors/privacy/rust-visibility-resolver.cc
+	(VisibilityResolver::resolve_module_path): Check if we are dealing with pub(crate) properly.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Set
+	resolved_node_id when visiting root segment of SimplePath.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-ast.h: Call SimplePath constructor differently in
+	SimplePath::from_str
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* hir/rust-ast-lower-type.h: Move all remaining definitions to source file.
+	* hir/rust-ast-lower-type.cc (ASTLoweringType::translate): Moved to source file.
+	(ASTLoweringType::visit): Likewise.
+	(ASTLowerGenericParam::translate): Likewise.
+	(ASTLowerGenericParam::visit): Likewise.
+	(ASTLoweringTypeBounds::translate): Likewise.
+	(ASTLoweringTypeBounds::visit): Likewise.
+	(ASTLowerWhereClauseItem::translate): Likewise.
+	(ASTLowerWhereClauseItem::visit): Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-pattern.h: Remove commented out code.
+
+2024-01-16  emanuele-em  <micheletti.emanuele@hotmail.com>
+
+	* typecheck/rust-casts.cc (TypeCastRules::cast_rules): BOOL removed from switch cases
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* Make-lang.in: Rename rust-asttribute-visitor.o -> rust-cfg-strip.o
+	* expand/rust-attribute-visitor.cc: Moved to...
+	* expand/rust-cfg-strip.cc: ...here.
+	* expand/rust-attribute-visitor.h: Moved to...
+	* expand/rust-cfg-strip.h: ...here.
+	* expand/rust-macro-expand.cc: Fix include of rust-attribute-visitor.h
+	* expand/rust-macro-builtins.cc: Likewise.
+	* rust-session-manager.cc (Session::expansion): Call CfgStrip instead of
+	AttrVisitor.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* Make-lang.in: Add new object file.
+	* expand/rust-attribute-visitor.cc (AttrVisitor::go): Visit all items of a
+	crate.
+	(AttrVisitor::expand_struct_fields): Do not perform macro expansion anymore.
+	(AttrVisitor::expand_function_params): Likewise.
+	(AttrVisitor::expand_generic_args): Likewise.
+	(AttrVisitor::expand_qualified_path_type): Likewise.
+	(AttrVisitor::expand_self_param): Likewise.
+	(AttrVisitor::expand_trait_function_decl): Likewise.
+	(AttrVisitor::expand_trait_method_decl): Likewise.
+	(AttrVisitor::visit): Likewise.
+	(AttrVisitor::maybe_expand_expr): Remove function.
+	(AttrVisitor::maybe_expand_type): Likewise.
+	* expand/rust-attribute-visitor.h: Do not keep MacroExpander inside AttrVisitor
+	anymore.
+	* expand/rust-macro-expand.h (struct MacroExpander): Turn ContextType into an
+	enum class for more type safety.
+	* expand/rust-macro-expand.cc (MacroExpander::expand_crate): Use new ContextType
+	API.
+	* rust-session-manager.cc (Session::expansion): Call into ExpandVisitor.
+	* expand/rust-expand-visitor.cc: New file.
+	* expand/rust-expand-visitor.h: New file.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* expand/rust-macro-expand.cc (MacroExpander::expand_crate): Do not cfg-attr
+	strip in MacroExpander
+	(MacroExpander::fails_cfg): Function moved...
+	(MacroExpander::fails_cfg_with_expand): Function moved...
+	(MacroExpander::expand_cfg_attrs): Function moved...
+	* expand/rust-attribute-visitor.cc (fails_cfg): ...here.
+	(fails_cfg_with_expand): ...here.
+	(expand_cfg_attrs): ...here.
+	(AttrVisitor::expand_struct_fields): Use new functions.
+	(AttrVisitor::expand_tuple_fields): Likewise.
+	(AttrVisitor::expand_function_params): Likewise.
+	(AttrVisitor::visit): Likewise.
+	(AttrVisitor::go): New function.
+	* expand/rust-attribute-visitor.h: Declare AttrVisitor::go.
+	* expand/rust-macro-expand.h (struct MacroExpander): Remove cfg-attr related
+	functions.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_macro_definition):
+	New function.
+	* hir/rust-ast-lower-base.h: Declare `lower_macro_definition`.
+	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Lower public
+	macro definitions.
+	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Likewise.
+	* hir/rust-ast-lower-stmt.h: Add visitor for `AST::MacroRulesDefinition`.
+	* hir/rust-ast-lower.cc (ASTLowering::go): Formatting.
+	(ASTLoweringBlock::visit): Visit `AST::MacroRulesDefinition`
+	(ASTLoweringIfLetBlock::visit): Formatting.
+	(ASTLoweringExprWithBlock::visit): Formatting.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Add new visitor
+	for AST::MacroRulesDefinition.
+	* hir/rust-ast-lower-item.h: Declare above mentioned visitor.
+	* metadata/rust-export-metadata.cc (ExportContext::emit_macro): New function.
+	* metadata/rust-export-metadata.h: Declare it.
+	(PublicInterface::gather_export_data): Go through each exported macro.
+	* util/rust-hir-map.cc (Mappings::insert_exported_macro): New function.
+	(Mappings::get_exported_macros): New function.
+	* util/rust-hir-map.h: Add new mappings for exported macros.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* backend/rust-compile-item.h: Revert 1c946687239b86a92839d57dfbc928ad7ce35eae.
+	* backend/rust-compile-stmt.h: Likewise.
+	* checks/errors/privacy/rust-privacy-reporter.cc
+	(PrivacyReporter::visit): Likewise.
+	* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
+	* checks/errors/privacy/rust-pub-restricted-visitor.cc
+	(PubRestrictedVisitor::visit): Likewise.
+	* checks/errors/privacy/rust-pub-restricted-visitor.h: Likewise.
+	* checks/errors/privacy/rust-reachability.cc
+	(ReachabilityVisitor::visit): Likewise.
+	* checks/errors/privacy/rust-reachability.h: Likewise.
+	* checks/errors/privacy/rust-visibility-resolver.cc
+	(VisibilityResolver::visit): Likewise.
+	* checks/errors/privacy/rust-visibility-resolver.h: Likewise.
+	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
+	* checks/errors/rust-const-checker.h: Likewise.
+	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
+	* checks/errors/rust-unsafe-checker.h: Likewise.
+	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
+	* hir/rust-ast-lower-item.h: Likewise.
+	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
+	* hir/rust-hir-dump.h: Likewise.
+	* hir/tree/rust-hir-full-decls.h (class ExportedMacro): Likewise.
+	* hir/tree/rust-hir-item.h (class ExportedMacro): Likewise.
+	* hir/tree/rust-hir-visitor.h: Likewise.
+	* hir/tree/rust-hir.cc (ExportedMacro::accept_vis): Likewise.
+	(ExportedMacro::get_locus): Likewise.
+	(ExportedMacro::get_item_kind): Likewise.
+	(ExportedMacro::clone_item_impl): Likewise.
+	* hir/tree/rust-hir.h: Likewise.
+	* metadata/rust-export-metadata.cc: Likewise.
+	* typecheck/rust-hir-type-check-item.h: Likewise.
+	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
+	* typecheck/rust-hir-type-check-stmt.h: Likewise.
+	* typecheck/rust-tycheck-dump.h: Likewise.
+	* util/rust-attributes.cc: Likewise.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): return a TraitObject
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-trait-resolve.cc: don't inject extra inference variables
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-ast-dump.cc (Dump::visit): Remove extraneous semicolon when
+	dumping macro rules.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* metadata/rust-imports.cc (add_search_path): Change `Go` -> `Rust`.
+	(Import::try_package_in_directory): Likewise.
+	(Import::find_export_data): Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/rust-ast-lower-pattern.cc
+	(ASTLoweringPattern::visit): Lower AltPattern.
+	* hir/rust-ast-lower-pattern.h:
+	(ASTLoweringPattern::visit): Add AltPattern visitor.
+
+2024-01-16  Xiao Ma  <turingki@yeah.net>
+	    Thomas Schwinge  <thomas@codesourcery.com>
+
+	* checks/errors/rust-feature-gate.cc: Adjust 'ld'->'u'.
+	* checks/errors/rust-feature.h: Adjust
+	the type of `m_issue`: 'uint64_t' -> 'unsigned'.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* ast/rust-ast.h: add const get_final_segment helper
+	* hir/rust-ast-lower-enumitem.h: dont add an item mapping for enumitems
+	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): add enum to enum-items mappings
+	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): likewise
+	* hir/tree/rust-hir-item.h: add non const helper to get variants
+	* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): resolve the use declaration
+	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): handle self
+	* resolve/rust-ast-resolve-toplevel.h: add enum item mappings to module mappings
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path): ensure variant
+	(TypeCheckExpr::resolve_segments): likewise
+	* typecheck/rust-type-util.cc (query_type): lookup enum's
+	* util/rust-hir-map.cc (Mappings::insert_hir_enumitem): enum item mappings
+	(Mappings::lookup_hir_enumitem): likewise
+	* util/rust-hir-map.h: likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* resolve/rust-ast-resolve-path.cc (ResolvePath::ResolvePath): return NodeId
+	(ResolvePath::go): update signiture
+	(ResolvePath::resolve_path): return resolved_node_id
+	* resolve/rust-ast-resolve-path.h: update prototypes
+
+2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>
+
+	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit):
+	Add lowering for SlicePattern.
+	* hir/rust-ast-lower-pattern.h: Likewise.
+	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit):
+	Add name resolution visit for SlicePattern.
+	* resolve/rust-ast-resolve-pattern.h: Likewise.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* hir/rust-ast-lower-implitem.h (RUST_AST_LOWER_IMPLITEM_H): cleanup header usage
+	* hir/rust-ast-lower-item.cc: likewise
+	* hir/rust-ast-lower-item.h (RUST_AST_LOWER_ITEM): likewise
+	* hir/rust-ast-lower-stmt.cc: likewise
+	* hir/rust-ast-lower-stmt.h (RUST_AST_LOWER_STMT): likewise
+	* hir/rust-ast-lower-type.h: likewise
+	* hir/rust-ast-lower.cc: likewise
+	* hir/rust-ast-lower.h: likewise
+	* resolve/rust-ast-resolve-expr.h: likewise
+	* resolve/rust-ast-resolve-item.cc: likewise
+	* resolve/rust-ast-resolve-item.h: likewise
+	* resolve/rust-ast-resolve-stmt.cc: likewise
+	* resolve/rust-ast-resolve-stmt.h: likewise
+	* resolve/rust-ast-resolve-struct-expr-field.h: likewise
+	* resolve/rust-ast-resolve-toplevel.h: likewise
+	* resolve/rust-ast-resolve-type.h: likewise
+	* resolve/rust-ast-resolve.h: likewise
+
+2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>
+
+	* resolve/rust-ast-resolve-pattern.h (class ResolvePattern): Removed.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-intrinsic.cc (move_val_init_handler): new intrinsice
+	(uninit_handler): use a builtin memcpy
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-coercion.cc (TypeCoercionRules::select): use the result
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal): fix ctor
+	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): likewise
+	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
+	* typecheck/rust-typecheck-context.cc (TypeCheckContext::push_new_loop_context): likewise
+	* typecheck/rust-tyty-util.cc (TyVar::get_implicit_infer_var): likewise
+	* typecheck/rust-tyty.cc (InferType::InferType): new ctor with type hint
+	(InferType::clone): fix ctor
+	(InferType::apply_primitive_type_hint): new function to apply possible hint
+	* typecheck/rust-tyty.h: update prototypes
+	* typecheck/rust-unify.cc (UnifyRules::expect_inference_variable): apply type hints
+	(UnifyRules::expect_bool): likewise
+	(UnifyRules::expect_char): likewise
+	(UnifyRules::expect_int): likewise
+	(UnifyRules::expect_uint): likewise
+	(UnifyRules::expect_float): likewise
+	(UnifyRules::expect_isize): likewise
+	(UnifyRules::expect_usize): likewise
+
+2024-01-16  Jiakun Fan  <120090316@link.cuhk.edu.cn>
+
+	* hir/rust-hir-dump.cc (Dump::go): fix format
+	(Dump::visit): impl `visit (AST::Attribute &)`, dump inner attrs and
+	`visit (Lifetime &)`
+	* hir/rust-hir-dump.h:add `visit (AST::Attribute &)`
+
+2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>
+
+	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go):
+	Print out consistency errors.
+	(PatternDeclaration::visit): Implement visit for AltPattern.
+	(PatternDeclaration::add_new_binding): New helper function for
+	adding a binding to identifier.
+	* resolve/rust-ast-resolve-pattern.h (struct BindingInfo):
+	New struct to facilitate checking for inconsistencies between bindings.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-compile-block.h
+	(CompileConditionalBlocks::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	(CompileExprWithBlock::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	* backend/rust-compile-expr.h
+	(CompileExpr::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	* checks/errors/rust-unsafe-checker.cc
+	(UnsafeChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	* checks/errors/rust-unsafe-checker.h
+	(UnsafeChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	* checks/errors/rust-const-checker.cc
+	(ConstChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	* checks/errors/rust-const-checker.h
+	(ConstChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	* checks/errors/privacy/rust-privacy-reporter.cc
+	(PrivacyReporter::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	* checks/errors/privacy/rust-privacy-reporter.h
+	(PrivacyReporter::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	* hir/tree/rust-hir-expr.h
+	(class IfLetExprConseqElse): Make else_block ExprWithBlock.
+	(class IfLetExprConseqIf): Remove.
+	(class IfLetExprConseqIfLet): Remove.
+	* hir/tree/rust-hir-full-decls.h
+	(class IfLetExprConseqIf): Remove.
+	(class IfLetExprConseqIfLet): Remove.
+	* hir/tree/rust-hir.cc
+	(IfLetExprConseqElse::as_string): Adjust output.
+	(IfLetExprConseqIf::as_string): Remove.
+	(IfLetExprConseqIfLet::as_string): Remove.
+	(IfLetExprConseqIf::accept_vis): Remove.
+	(IfLetExprConseqIfLet::accept_vis): Remove.
+	* hir/tree/rust-hir-visitor.h
+	(HIRFullVisitor::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	(HIRFullVisitorBase::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	(HIRExpressionVisitor::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	* hir/rust-hir-dump.cc
+	(Dump::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	* hir/rust-hir-dump.h
+	(Dump::visit): Remove IfLetExprConseqIf{,Let} visitors.
+	* typecheck/rust-hir-type-check-expr.h
+	(TypeCheckExpr::visit): Remove IfLetExprConseqIf{,Let} visitors.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* typecheck/rust-hir-type-check-expr.cc
+	(TypeCheckExpr::visit): Remove IfExprConseqIf visitor.
+	* typecheck/rust-hir-type-check-expr.h
+	(TypeCheckExpr::visit): Remove IfExprConseqIf{,Let} visitor.
+	* backend/rust-compile-block.cc
+	(CompileConditionalBlocks::visit): Remove IfExprConseqIf visitor.
+	* backend/rust-compile-block.h
+	(CompileConditionalBlocks::visit): Remove IfExprConseqIf{,Let} visitors.
+	(CompileExprWithBlock::visit):
+	Remove IfExprConseqIf{,Let} visitors, implement BlockExpr visitor.
+	* backend/rust-compile-expr.cc
+	(CompileExpr::visit): Remove IfExprConseqIf visitor.
+	* backend/rust-compile-expr.h
+	(CompileExpr::visit): Remove IfExprConseqIf{,Let} visitors.
+	* checks/lints/rust-lint-marklive.h
+	(MarkLive::visit): Remove IfExprConseqIf visitor.
+	* checks/errors/rust-const-checker.cc
+	(ConstChecker::visit): Remove IfExprConseqIf{,Let} visitors.
+	* checks/errors/rust-const-checker.h
+	(ConstChecker::visit): Remove IfExprConseqIf{,Let} visitors.
+	* checks/errors/rust-unsafe-checker.cc
+	(UnsafeChecker::visit): Remove IfExprConseqIf{,Let} visitors.
+	* checks/errors/rust-unsafe-checker.h
+	(UnsafeChecker::visit): Remove IfExprConseqIf{,Let} visitors.
+	* checks/errors/privacy/rust-privacy-reporter.cc
+	(PrivacyReporter::visit): Remove IfExprConseqIf{,Let} visitors.
+	* checks/errors/privacy/rust-privacy-reporter.h
+	(PrivacyReporter::visit): Remove IfExprConseqIf{,Let} visitors.
+	* hir/tree/rust-hir-expr.h
+	(class IfExprConseqElse): Make else_block ExprWithBlock.
+	(class IfExprConseqIf): Remove.
+	(class IfExprConseqIfLet): Remove.
+	* hir/tree/rust-hir-full-decls.h
+	(class IfExprConseqIf): Remove.
+	(class IfExprConseqIfLet): Remove.
+	* hir/tree/rust-hir.cc
+	(IfExprConseqElse::as_string): Adjust output.
+	(IfExprConseqIf::as_string): Remove.
+	(IfExprConseqIfLet::as_string): Remove.
+	(IfExprConseqIf::accept_vis): Remove.
+	(IfExprConseqIfLet::accept_vis): Remove.
+	* hir/tree/rust-hir-visitor.h
+	(HIRFullVisitor::visit): Remove IfExprConseqIf{,Let} visitors.
+	(HIRFullVisitorBase::visit): Remove IfExprConseqIf{,Let} visitors.
+	(HIRExpressionVisitor::visit): Remove IfExprConseqIf{,Let} visitors.
+	* hir/rust-hir-dump.cc
+	(Dump::visit): Remove IfExprConseqIf{,Let} visitors.
+	* hir/rust-hir-dump.h
+	(Dump::visit): Remove IfExprConseqIf{,Let} visitors.
+	* hir/rust-ast-lower.cc
+	(ASTLoweringIfBlock::visit): Replace HIR::IfExprConseqIf with HIR::IfExprConseqElse.
+
+2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>
+
+	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
+	Push a Product context instead of an Or context.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-inherent-impl-overlap.h (class ImplItemToName): remove
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address): remove unused code
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): remove infer call
+	(TypeCheckExpr::resolve_root_path): only infer when we need to
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): add debug
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile.cc: use unify_and instead
+	* typecheck/rust-tyty-subst.cc (SubstitutionRef::solve_missing_mappings_from_this): remove
+	* typecheck/rust-tyty-subst.h: update header
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-coercion.cc (TypeCoercionRules::select): use new unify_and interface
+	* typecheck/rust-hir-dot-operator.cc (MethodResolver::try_hook): grab bounds behind refs
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-base.cc: fix headers
+	* backend/rust-compile-base.h: likewise
+	* backend/rust-compile-expr.cc: likewise
+	* backend/rust-compile-extern.h: likewise
+	* backend/rust-compile-pattern.cc: likewise
+	* backend/rust-compile.cc: likewise
+	* typecheck/rust-autoderef.cc: likewise
+	* typecheck/rust-hir-dot-operator.cc: likewise
+	* typecheck/rust-hir-inherent-impl-overlap.h: likewise
+	* typecheck/rust-hir-path-probe.cc: likewise
+	* typecheck/rust-hir-trait-resolve.cc: likewise
+	* typecheck/rust-hir-type-check-base.cc: likewise
+	* typecheck/rust-hir-type-check-base.h (RUST_HIR_TYPE_CHECK_BASE): likewise
+	* typecheck/rust-hir-type-check-enumitem.cc: likewise
+	* typecheck/rust-hir-type-check-expr.cc: likewise
+	* typecheck/rust-hir-type-check-implitem.cc: likewise
+	* typecheck/rust-hir-type-check-item.cc: likewise
+	* typecheck/rust-hir-type-check-path.cc: likewise
+	* typecheck/rust-hir-type-check-pattern.cc: likewise
+	* typecheck/rust-hir-type-check-stmt.cc: likewise
+	* typecheck/rust-hir-type-check-struct.cc: likewise
+	* typecheck/rust-hir-type-check-type.cc: likewise
+	* typecheck/rust-hir-type-check-type.h: likewise
+	* typecheck/rust-hir-type-check.h (RUST_HIR_TYPE_CHECK): likewise
+	* typecheck/rust-tyty-bounds.cc: likewise
+	* typecheck/rust-tyty-call.cc: likewise
+	* typecheck/rust-tyty-subst.cc: likewise
+	* typecheck/rust-tyty.cc: likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-tyty.cc (BaseType::has_subsititions_defined): new implementation
+	(BaseType::needs_generic_substitutions): likewise
+	(ProjectionType::needs_generic_substitutions): remove
+	(ProjectionType::has_subsititions_defined): remove
+	* typecheck/rust-tyty.h: update header
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): update to use new interface
+	(TypeCheckExpr::resolve_root_path): likewise
+	(TypeCheckExpr::resolve_segments): likewise
+	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
+	(TypeCheckType::resolve_root_path): likewise
+	* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args): likewise
+	* typecheck/rust-tyty.cc (BaseType::supports_substitutions): likewise
+	(BaseType::can_substitute): remove
+	(BaseType::contains_type_parameters): remove
+	(handle_substitions): cleanup
+	(TupleType::handle_substitions): update
+	(FnType::handle_substitions): update
+	(ProjectionType::supports_substitutions): update
+	* typecheck/rust-tyty.h: update header
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-tyty.h: cleanup ordering of header
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-tyty.cc (BaseType::monomorphized_clone): new impl
+	(InferType::monomorphized_clone): remove
+	(ErrorType::monomorphized_clone): likewise
+	(ADTType::monomorphized_clone): likewise
+	(TupleType::monomorphized_clone): likewise
+	(FnType::monomorphized_clone): likewise
+	(FnPtr::monomorphized_clone): likewise
+	(ClosureType::monomorphized_clone): likewise
+	(ArrayType::clone): likewise
+	(ArrayType::get_var_element_type): likewise
+	(ArrayType::monomorphized_clone): likewise
+	(SliceType::clone): likewise
+	(SliceType::get_var_element_type): likewise
+	(SliceType::monomorphized_clone): likewise
+	(BoolType::monomorphized_clone): likewise
+	(IntType::monomorphized_clone): likewise
+	(UintType::monomorphized_clone): likewise
+	(FloatType::monomorphized_clone): likewise
+	(USizeType::monomorphized_clone): likewise
+	(ISizeType::monomorphized_clone): likewise
+	(CharType::monomorphized_clone): likewise
+	(ReferenceType::clone): likewise
+	(ReferenceType::get_var_element_type): likewise
+	(ReferenceType::monomorphized_clone): likewise
+	(PointerType::clone): likewise
+	(PointerType::get_var_element_type): likewise
+	(PointerType::monomorphized_clone): likewise
+	(ParamType::monomorphized_clone): likewise
+	(StrType::monomorphized_clone): likewise
+	(NeverType::monomorphized_clone): likewise
+	(PlaceholderType::monomorphized_clone): likewise
+	(ProjectionType::monomorphized_clone): likewise
+	(DynamicObjectType::monomorphized_clone): likewise
+	* typecheck/rust-tyty.h: update header
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-tyty.cc (BaseType::is_unit): new implementation
+	(ErrorType::is_unit): remove
+	(TupleType::is_unit): likewise
+	(NeverType::is_unit): likewise
+	(PlaceholderType::is_unit): likewise
+	(ProjectionType::is_unit): likewise
+	* typecheck/rust-tyty.h: update header
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-tyty.cc (BaseType::is_concrete): new implementation
+	(InferType::is_concrete): remove
+	(ErrorType::is_concrete): likewise
+	(StructFieldType::is_concrete): likewise
+	(ADTType::is_concrete): likewise
+	(TupleType::is_concrete): likewise
+	(BoolType::is_concrete): likewise
+	(IntType::is_concrete): likewise
+	(UintType::is_concrete): likewise
+	(FloatType::is_concrete): likewise
+	(USizeType::is_concrete): likewise
+	(ISizeType::is_concrete): likewise
+	(CharType::is_concrete): likewise
+	(ReferenceType::is_concrete): likewise
+	(PointerType::is_concrete): likewise
+	(ParamType::is_concrete): likewise
+	(StrType::is_concrete): likewise
+	(NeverType::is_concrete): likewise
+	(PlaceholderType::is_concrete): likewise
+	(ProjectionType::is_concrete): likewise
+	(DynamicObjectType::is_concrete): likewise
+	* typecheck/rust-tyty.h: update header
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-type.cc (TyTyResolveCompile::TyTyResolveCompile): call destructure
+	(TyTyResolveCompile::compile): use error_mark_node
+	(TyTyResolveCompile::visit): use error_mark_node
+	* backend/rust-compile-type.h: remove recursive ops
+
+2024-01-16  Tage Johansson  <frans.tage@gmail.com>
+
+	* parse/rust-parse.cc: fix follow-sets
+
+2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>
+
+	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit) :declare and
+	pass bindings to PatternDeclaration::go.
+	(ResolveExpr::resolve_closure_param): Likewise.
+	* resolve/rust-ast-resolve-expr.h: Likewise.
+	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit): Likewise.
+	(ResolveItem::visit): Likewise.
+	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go): Likewise.
+	(PatternDeclaration::visit): check for previous identifier bindings
+	before inserting the new one.
+	* resolve/rust-ast-resolve-pattern.h (enum PatternBoundCtx): New enum.
+	* resolve/rust-ast-resolve-stmt.h: pass bindings to PatterDeclaration::go.
+
+2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>
+
+	* backend/rust-compile-expr.cc (CompileExpr::generate_closure_function):
+	handle closure parameters pattern bindings using CompilePatternBindings visitor
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* README.md (process): Rename `rust1` to `crab1` in examples.
+	* Make-lang.in: Rename `rust1` to `crab1`.
+	* config-lang.in: Likewise.
+	* lang-specs.h: Likewise.
+	* rustspec.cc (lang_specific_driver): Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/tree/rust-hir-pattern.h
+	(SlicePattern::get_items): Add.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/tree/rust-hir-full-decls.h
+	(struct GenericArgsBinding): Convert to class.
+	(class GenericArgsBinding): Convert from struct.
+	(struct TypePathFunction): See above.
+	(class TypePathFunction): See above.
+	(struct QualifiedPathType): See above.
+	(class QualifiedPathType): See above.
+	* ast/rust-ast-full-decls.h
+	(struct WhereClause): See above.
+	(class WhereClause): See above.
+	(struct SelfParam): See above.
+	(class SelfParam): See above.
+	(struct FunctionQualifiers): See above.
+	(class FunctionQualifiers): See above.
+	(struct FunctionParam): See above.
+	(class FunctionParam): See above.
+	(struct StructField): See above.
+	(class StructField): See above.
+	(struct TupleField): See above.
+	(class TupleField): See above.
+	(struct TraitFunctionDecl): See above.
+	(class TraitFunctionDecl): See above.
+	(struct TraitMethodDecl): See above.
+	(class TraitMethodDecl): See above.
+	(struct NamedFunctionParam): See above.
+	(class NamedFunctionParam): See above.
+	* hir/tree/rust-hir-path.h
+	(struct GenericArgsBinding): See above.
+	(class GenericArgsBinding): See above.
+	(struct TypePathFunction): See above.
+	(class TypePathFunction): See above.
+	(struct QualifiedPathType): See above.
+	(class QualifiedPathType): See above.
+	* ast/rust-item.h
+	(struct WhereClause): See above.
+	(class WhereClause): See above.
+	(struct SelfParam): See above.
+	(class SelfParam): See above.
+	(struct FunctionQualifiers): See above.
+	(class FunctionQualifiers): See above.
+	(struct FunctionParam): See above.
+	(class FunctionParam): See above.
+	(struct StructField): See above.
+	(class StructField): See above.
+	(struct TupleField): See above.
+	(class TupleField): See above.
+	(struct TraitFunctionDecl): See above.
+	(class TraitFunctionDecl): See above.
+	(struct TraitMethodDecl): See above.
+	(class TraitMethodDecl): See above.
+	(struct NamedFunctionParam): See above.
+	(class NamedFunctionParam): See above.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/tree/rust-hir-pattern.h
+	(class AltPattern): Remove duplicate access specifier.
+	(AltPattern::get_alts): Add.
+	* hir/tree/rust-hir.cc
+	(AltPattern::as_string): Add.
+	(AltPattern::accept_vis): Add.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* hir/tree/rust-hir-item.h (class ExportedMacro): Add new ExportedMacro class.
+	* hir/tree/rust-hir.cc (ExportedMacro::accept_vis): New function.
+	(ExportedMacro::get_locus): Likewise.
+	(ExportedMacro::get_item_kind): Likewise.
+	(ExportedMacro::clone_item_impl): Likewise.
+	* hir/tree/rust-hir-full-decls.h (class ExportedMacro): Forward declare class.
+	* backend/rust-compile-item.h: Add visitor for ExportedMacro.
+	* backend/rust-compile-stmt.h: Likewise.
+	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
+	* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
+	* checks/errors/privacy/rust-pub-restricted-visitor.cc (PubRestrictedVisitor::visit):
+	Likewise.
+	* checks/errors/privacy/rust-pub-restricted-visitor.h: Likewise.
+	* checks/errors/privacy/rust-reachability.cc (ReachabilityVisitor::visit): Likewise.
+	* checks/errors/privacy/rust-reachability.h: Likewise.
+	* checks/errors/privacy/rust-visibility-resolver.cc (VisibilityResolver::visit): Likewise.
+	* checks/errors/privacy/rust-visibility-resolver.h: Likewise.
+	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
+	* checks/errors/rust-const-checker.h: Likewise.
+	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
+	* checks/errors/rust-unsafe-checker.h: Likewise.
+	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
+	* hir/rust-ast-lower-item.h: Likewise.
+	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
+	* hir/rust-hir-dump.h: Likewise.
+	* hir/tree/rust-hir-visitor.h: Likewise.
+	* metadata/rust-export-metadata.cc: Likewise.
+	* typecheck/rust-hir-type-check-item.h: Likewise.
+	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
+	* typecheck/rust-hir-type-check-stmt.h: Likewise.
+	* typecheck/rust-tycheck-dump.h: Likewise.
+	* hir/tree/rust-hir.h: Add new ItemKind::MacroExport variant.
+	* util/rust-attributes.cc: Add #[macro_export] attribute.
+
+2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>
+
+	* backend/rust-compile-fnparam.cc (CompileFnParam::visit):
+	Added visit implementation for ReferencePattern.
+	(CompileFnParam::create_tmp_param_var):
+	Refactored duplicated code into a helper function.
+	* backend/rust-compile-fnparam.h: Added visit implementation for
+	ReferencePattern.
+	* backend/rust-compile-pattern.cc (CompilePatternBindings::visit):
+	Added visit implementation for ReferencePattern and
+	IdentifierPattern.
+	* backend/rust-compile-pattern.h: Added visit implementation for
+	ReferencePattern and IdentifierPattern.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Move
+	unloaded module item loading to...
+	* expand/rust-attribute-visitor.cc (AttrVisitor::visit): ...here.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* hir/rust-hir-dump.cc (Dump::visit): Simplify indentation dump to single line.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* ast/rust-ast-dump.cc (Indent::Indent): Move to separate file.
+	(operator<<): Move to separate file.
+	(Indent::increment): Move to separate file.
+	(Indent::decrement): Move to separate file.
+	* ast/rust-ast-dump.h (class Indent): Move to separate file.
+	* hir/rust-hir-dump.cc (Dump::Dump): Use new indentation object.
+	(Dump::go): Use new indentation object.
+	(Dump::visit): Use new indention object.
+	* hir/rust-hir-dump.h: Use new indentation object.
+	* util/rust-dump.h: New file. Moved Indentation from rust-ast-dump.cc
+
+2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>
+
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+	Add the missing infered type assignment
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	PR rust/108111
+	* ast/rust-ast-full-decls.h (StructPatternElements): Declare as a
+	class.
+	* ast/rust-item.h (EnumItem): Mark several method as being
+	overrides.
+	* ast/rust-pattern.h (StructPattern::get_locus): Add override.
+	* lex/rust-lex.h (BufferInputSource): Use reference_wrapper
+	instead of bare reference.
+	(TokenSource::get): Add method to implement the reference_wrapper
+	interface.
+	* typecheck/rust-tyty.h (TypeBoundPredicate): Add empty dtor.
+	* util/rust-buffered-queue.h (peek): Source token stream is now
+	using a reference_wrapper, use .get()
+
+2024-01-16  vincent  <jfan30@u.rochester.edu>
+
+	* typecheck/rust-hir-type-check-pattern.cc
+	(TypeCheckPattern::visit): rewrite part code to helper function
+	(TypeCheckPattern::typecheck_range_pattern_bound): helper function
+	* typecheck/rust-hir-type-check-pattern.h
+	(TypeCheckPattern::typecheck_range_pattern_bound):
+	change the parameter of the function
+
+2024-01-16  goar5670  <mahadelr19@gmail.com>
+
+	* hir/tree/rust-hir-pattern.h (HIR::ReferencePattern):
+	added get_referenced_pattern function.
+	* resolve/rust-ast-resolve-pattern.h
+	(Resolve::PatternDeclaration): add visit function for
+	AST::ReferencePattern
+	* typecheck/rust-hir-type-check-pattern.cc
+	(Resolver::TypeCheckPattern): add visit function for
+	HIR::ReferencePattern
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* util/rust-lang-item.h
+	(RustLangItem::ItemType): New enumerators.
+	(RustLangItem::Parse): Parse new enumerators.
+	(RustLangItem::ToString): Handle new enumerators.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* backend/rust-compile-fnparam.h:
+	(CompileFnParam::visit): Add AltPattern visitor.
+	* backend/rust-compile-pattern.h:
+	(CompilePatternCaseLabelExpr::visit): Add AltPattern visitor.
+	(CompilePatternBindings::visit): Add AltPattern visitor.
+	(CompilePatternLet::visit): Add AltPattern visitor.
+	* backend/rust-compile-resolve-path.h:
+	(ResolvePathRef::visit): Add AltPattern visitor.
+	* backend/rust-compile-var-decl.h:
+	(CompileVarDecl::visit): Add AltPattern visitor.
+	* checks/errors/rust-const-checker.cc
+	(ConstChecker::visit): Add AltPattern visitor.
+	* checks/errors/rust-const-checker.h:
+	(ConstChecker::visit): Add AltPattern visitor.
+	* checks/errors/rust-unsafe-checker.cc
+	(UnsafeChecker::visit): Add AltPattern visitor.
+	* checks/errors/rust-unsafe-checker.h:
+	(UnsafeChecker::visit): Add AltPattern visitor.
+	* hir/rust-hir-dump.cc
+	(Dump::visit): Add AltPattern visitor.
+	* hir/rust-hir-dump.h:
+	(Dump::visit): Add AltPattern visitor.
+	* hir/tree/rust-hir-full-decls.h
+	(class AltPattern): Add forward declaration.
+	* hir/tree/rust-hir-pattern.h
+	(class AltPattern): New class.
+	* hir/tree/rust-hir-visitor.h:
+	(HIRFullVisitor::visit): Add AltPattern visitor.
+	(HIRFullVisitorBase::visit): Add AltPattern visitor.
+	(HIRPatternVisitor::visit): Add AltPattern visitor.
+	* hir/tree/rust-hir.h:
+	(Pattern::PatternType::ALT): New enumerator.
+	* typecheck/rust-hir-type-check-pattern.cc
+	(TypeCheckPattern::visit): Add AltPattern visitor.
+	* typecheck/rust-hir-type-check-pattern.h:
+	(TypeCheckPattern::visit): Add AltPattern visitor.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-macro.cc (builtin_macro_from_string): Add identifier
+	identification.
+	* ast/rust-macro.h (enum class): Add Stringify builtin macro
+	type.
+	* expand/rust-macro-builtins.cc (make_macro_path_str): Add path
+	for builtin stringify macro.
+	(MacroBuiltin::stringify_handler): Add handler for builtin
+	stringify macro.
+	* expand/rust-macro-builtins.h: Add stringify handler's
+	prototype.
+	* util/rust-hir-map.cc (Mappings::insert_macro_def): Add
+	stringify handler to builtin hir map.
+
+2024-01-16  Nikos Alexandris  <nikos-alexandris@protonmail.com>
+
+	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+		Add length checking for tuple patterns.
+	(TypeCheckPattern::emit_pattern_size_error): New function.
+	* typecheck/rust-hir-type-check-pattern.h: New function
+		emit_pattern_size_error.
+
+2024-01-16  goar5670  <mahadelr19@gmail.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_expr):
+	split LEFT_SHIFT before null_denotation.
+
+2024-01-16  Parthib  <parthibdutta02@gmail.com>
+
+	* rust-object-export.cc: Modified
+	* hir/rust-ast-lower-type.cc (rust_fatal_error): Removed
+		(rust_assert): Added
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* resolve/rust-early-name-resolver.cc
+	(EarlyNameResolver::visit):
+	Check for closure parameter without given type.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-typecheck-context.cc (TypeCheckContext::insert_resolved_predicate): remove
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* resolve/rust-ast-resolve-type.cc (ResolveRelativeQualTypePath::resolve_qual_seg): fix
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* ast/rust-path.h: add missing copy for node_id
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust-gcc.h: remove unused headers
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* ast/rust-ast.cc (QualifiedPathInType::as_string): add missing to string
+	* ast/rust-path.h: add missing copy+move constructors and assignment overloads
+	* hir/tree/rust-hir-path.h: likewise
+	* hir/tree/rust-hir.cc (QualifiedPathInType::as_string): add missing to string
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-tyty.cc (ParamType::get_name): call destructure
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-hir-trait-resolve.cc: use unify_and infer
+
+2024-01-16  goar5670  <mahadelr19@gmail.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_closure_param):
+	Replace parse_pattern with parse_pattern_no_alt.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_while_let_loop_expr):
+	Prevent hard error on token skip.
+	(Parser::null_denotation): Fix parser for while let expressions.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-builtins.cc (BuiltinsContext::setup): add memset builtin to the map
+	* backend/rust-compile-intrinsic.cc (uninit_handler): implement uninit intrinsic
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_slice_pattern): Add
+	closing square bracket check.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_external_type_item):
+	Fix compilation error due to unnecessary move.
+
+2024-01-16  Abdul Rafey  <abdulrafeyq@gmail.com>
+
+	* hir/rust-hir-dump.cc (Dump::go): support inner attrs, crate items and node mappings
+	(Dump::visit): support functions, arith/logical exprs, let stmts and literals
+
+2024-01-16  Nikos Alexandris  <nikos-alexandris@protonmail.com>
+
+	* expand/rust-macro-builtins.cc (load_file_bytes): Add location parameter.
+	(MacroBuiltin::include_bytes_handler): Pass location to load_file_bytes.
+	(MacroBuiltin::include_str_handler): Pass location to load_file_bytes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_pattern_no_alt): Handle
+	RestPattern correctly.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-pattern.h (class RestPattern): Add NodeId as well as
+	the clone_impl function.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::null_denotation): Fix if let
+	parsing.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-intrinsic.cc (op_with_overflow_inner): wraps op_with_overflow
+	(std::function<tree): likewise
+	(op_with_overflow): generate the intrinsic based on the tree_code op
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* Make-lang.in: Add rust-ast-lower-stmt.o
+	* hir/rust-ast-lower-stmt.h: Move definitions to...
+	* hir/rust-ast-lower-stmt.cc: ...here.
+
+2024-01-16  mxlol233  <mxlol233@outlook.com>
+
+	* checks/errors/rust-feature-gate.cc: Add definition
+	for `extern_types`.
+	* checks/errors/rust-feature-gate.h: Likewise.
+	* checks/errors/rust-feature.cc: Likewise.
+	* checks/errors/rust-feature.h: Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-pattern.h
+	(StructPatternElements::operator=): Clear vector before inserting.
+	(TupleStructItemsNoRange::operator=): Clear vector before inserting.
+	(TupleStructItemsRange::operator=): Clear vectors before inserting.
+	(TuplePatternItemsMultiple::operator=): Clear vector before inserting.
+	(TuplePatternItemsRanged::operator=): Clear vectors before inserting.
+	(SlicePattern::operator=): Clear vector before inserting.
+	(AltPattern::operator=): Clear vector before inserting.
+	* hir/tree/rust-hir-pattern.h
+	(StructPatternElements::operator=): Clear vector before inserting.
+	(TupleStructItemsNoRange::operator=): Clear vector before inserting.
+	(TupleStructItemsRange::operator=): Clear vectors before inserting.
+	(TuplePatternItemsMultiple::operator=): Clear vector before inserting.
+	(TuplePatternItemsRanged::operator=): Clear vectors before inserting.
+	(SlicePattern::operator=): Clear vector before inserting.
+
+2024-01-16  bl7awy  <mahadelr19@gmail.com>
+
+	* typecheck/rust-casts.cc (TypeCastRules::cast_rules): Perform destructure on `from` type.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* ast/rust-pattern.h
+	(struct StructPatternElements): Change to class.
+	(class StructPatternElements): Change from struct.
+	* hir/tree/rust-hir-pattern.h
+	(struct StructPatternElements): Change to class.
+	(class StructPatternElements): Change from struct.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* typecheck/rust-hir-type-check-pattern.cc
+	(TypeCheckPattern::visit): Improve error messages.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* hir/tree/rust-hir-pattern.h
+	(class TupleStructItemsNoRange): Fix formatting.
+	(class TupleStructItemsRange): Fix formatting.
+	(class TuplePatternItemsMultiple): Fix formatting.
+	(class TuplePatternItemsRanged): Fix formatting.
+	(class SlicePattern): Fix formatting.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* ast/rust-ast-dump.cc (Dump::visit): Add visitor.
+	* ast/rust-ast-dump.h: Add visitor prototype.
+	* ast/rust-ast-full-decls.h (class RestPattern): Add forward
+	declaration for class RestPattern.
+	* ast/rust-ast-visitor.h: Add visitor prototype.
+	* ast/rust-ast.cc (RestPattern::accept_vis): Add function to
+	accept a foreign visitor.
+	* ast/rust-pattern.h (class RestPattern): Add class RestPattern.
+	* checks/errors/rust-feature-gate.h: Add visitor prototype.
+	* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Add
+	visitor implementation.
+	* expand/rust-attribute-visitor.h: Add visitor prototype.
+	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Add
+	visitor implementation.
+	* hir/rust-ast-lower-base.h: Add visitor prototype.
+	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Add
+	visitor implementation.
+	* resolve/rust-ast-resolve-base.h: Add visitor prototype.
+	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+	Add visitor implementation.
+	* resolve/rust-early-name-resolver.h: Add visitor prototype.
+	* util/rust-attributes.cc (AttributeChecker::visit): Add visitor
+	implementation.
+	* util/rust-attributes.h: Add visitor prototype.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-tyty-cmp.h: remove
+	* typecheck/rust-tyty.cc (set_cmp_autoderef_mode): likewise
+	(reset_cmp_autoderef_mode): likewise
+	* typecheck/rust-tyty.h (set_cmp_autoderef_mode): likewise
+	(reset_cmp_autoderef_mode): likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-coercion.cc (TypeCoercionRules::Coerce): Add new try_flag
+	(TypeCoercionRules::TypeCoercionRules): set new try flag
+	(TypeCoercionRules::do_coercion): default to a final unify_and in the else case
+	(TypeCoercionRules::coerce_unsafe_ptr): cannot coerce to a ptr from ref during autoderef
+	(TypeCoercionRules::coerce_borrowed_pointer): respect coerceable mutability
+	* typecheck/rust-coercion.h: update header
+	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): use new TryCoerce interface
+	(MethodResolver::append_adjustments): ensure we maintain adjustment mappings
+	* typecheck/rust-hir-dot-operator.h: add new method append_adjustments
+	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): extra logging
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-unify.cc (UnifyRules::go): fix inference check
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-base.h: unconsify
+	* backend/rust-compile.cc (HIRCompileBase::coercion_site): likewise
+	(HIRCompileBase::coercion_site1): likewise
+	* typecheck/rust-autoderef.cc (Adjuster::try_deref_type): likewise
+	(Adjuster::try_raw_deref_type): likewise
+	(Adjuster::try_unsize_type): likewise
+	(AutoderefCycle::cycle): likewise
+	(AutoderefCycle::try_autoderefed): likewise
+	* typecheck/rust-autoderef.h: likewise
+	* typecheck/rust-coercion.cc (TypeCoercionRules::select): likewise
+	* typecheck/rust-coercion.h: likewise
+	* typecheck/rust-hir-dot-operator.cc (MethodResolver::Probe): likewise
+	(MethodResolver::select): likewise
+	* typecheck/rust-hir-dot-operator.h: likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-unify.cc (UnifyRules::go): respect the emit_errors flag
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-casts.cc (TypeCastRules::check): update to new interface
+	* typecheck/rust-coercion.cc (TypeCoercionRules::Coerce): likewise
+	(TypeCoercionRules::TryCoerce): likewise
+	(TypeCoercionRules::TypeCoercionRules): likewise
+	* typecheck/rust-coercion.h: likewise
+	* typecheck/rust-type-util.cc (coercion_site): likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-unify.cc (UnifyRules::go): allow lhs infer vars
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address): update to new inteface
+	* typecheck/rust-coercion.cc (TypeCoercionRules::coerce_unsafe_ptr): likewise
+	(TypeCoercionRules::coerce_borrowed_pointer): likewise
+	* typecheck/rust-hir-type-check.h: likewise
+	* typecheck/rust-type-util.cc (unify_site_and): new interface to allow for infer and commit
+	* typecheck/rust-type-util.h (unify_site_and): likewise
+	* typecheck/rust-typecheck-context.cc (TypeCheckContext::clear_type): new interface
+	* typecheck/rust-unify.cc (UnifyRules::UnifyRules): update
+	(UnifyRules::Resolve): new optional flags for commit and infer
+	(UnifyRules::go): likewise
+	(UnifyRules::expect_adt): refactor to use new interface
+	(UnifyRules::expect_reference): likewise
+	(UnifyRules::expect_pointer): likewise
+	(UnifyRules::expect_array): likewise
+	(UnifyRules::expect_slice): likewise
+	(UnifyRules::expect_fndef): likewise
+	(UnifyRules::expect_fnptr): likewise
+	(UnifyRules::expect_tuple): likewise
+	(UnifyRules::expect_closure): likewise
+	* typecheck/rust-unify.h: refactor interface
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-unify.cc (UnifyRules::Resolve): refactor
+	(UnifyRules::commit): refactor
+	* typecheck/rust-unify.h: likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* typecheck/rust-tyty.cc (ADTType::is_concrete):  need to consider if is a num_variant
+	* typecheck/rust-tyty.h: refactor to cc file
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_external_type_item):
+	Add function to parser an external type item.
+	(Parser::parse_external_item):
+	Add identification and parsing for external type items.
+	* parse/rust-parse.h:
+	Add parser_external_type_item prototype.
+
+2024-01-16  omkar-mohanty  <franzohouser@gmail.com>
+
+	* expand/rust-macro-builtins.cc
+	(MacroBuiltin::include_str_handler): eager expansion
+	(make_macro_path_str): macto to string
+	(parse_single_string_literal): check for eager invocation
+	(MacroBuiltin::assert_handler): eager expansion
+	(MacroBuiltin::include_bytes_handler): eager expansion
+	(MacroBuiltin::include_str_handler): eager expansion
+	(MacroBuiltin::compile_error_handler): eager expansion
+	(MacroBuiltin::include_handler): eager expansion
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-item.h (class Method): Add `is_default` field.
+	(class Function): Likewise.
+	* parse/rust-parse-impl.h (Parser::parse_item): Add nice error when
+	parsing `default` outside of an `impl` block
+	(Parser::parse_trait_impl_item): Allow parsing functions
+	or methods when seeing `default`.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::cast_site):
+	Remove cast_site.
+	* typecheck/rust-hir-type-check-base.h: Remove cast_site
+	prototype.
+	* typecheck/rust-type-util.cc (cast_site): Add cast_site.
+	* typecheck/rust-type-util.h (cast_site): Add cast_site
+	prototype.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-item.h: Add non-const `get_visibility` to ExternalTypeItem.
+	* ast/rust-ast-dump.cc (Dump::visit): Add implementation for ExternalTypeItem.
+	* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Likewise.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-item.h (class ExternalTypeItem): New class.
+	* ast/rust-ast.cc (ExternalTypeItem::as_string): New function.
+	(ExternalTypeItem::accept_vis): Likewise.
+	* ast/rust-ast-full-decls.h (class ExternalTypeItem): Declare class.
+	* ast/rust-ast-dump.cc (Dump::visit): Add base visitor for ExternalTypeItem.
+	* ast/rust-ast-dump.h: Likewise.
+	* ast/rust-ast-visitor.h: Likewise.
+	* checks/errors/rust-feature-gate.h: Likewise.
+	* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Likewise.
+	* expand/rust-attribute-visitor.h: Likewise.
+	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
+	* hir/rust-ast-lower-base.h: Likewise.
+	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
+	* resolve/rust-ast-resolve-base.h: Likewise.
+	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise.
+	* resolve/rust-early-name-resolver.h: Likewise.
+	* util/rust-attributes.cc (AttributeChecker::visit): Likewise.
+	* util/rust-attributes.h: Likewise.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* expand/rust-macro-invoc-lexer.cc (MacroInvocLexer::split_current_token):
+	Add proper implementation.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* ast/rust-item.h (class Trait): Add `has_auto` field.
+	* checks/errors/rust-feature.cc: Add handling for `feature(optin_builtin_traits)`
+	* checks/errors/rust-feature.h: Likewise.
+	* lex/rust-lex.cc: Fix keyword classification using hashmap.
+	* lex/rust-token.h: Add `auto` keyword token.
+	* parse/rust-parse-impl.h (Parser::parse_vis_item): Parse auto traits
+	on `auto` keyword.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item):
+	Remove TypeCheckBase namespace qualifier.
+	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::coercion_site):
+	Remove coercion_site function.
+	* typecheck/rust-hir-type-check-base.h: Remove coercion_site
+	prototype.
+	* typecheck/rust-type-util.cc (coercion_site): Add coercion_site
+	function.
+	* typecheck/rust-type-util.h (coercion_site): Add coercion_site
+	prototype.
+	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
+	Remove TypeCheckBase namespace qualifier.
+	(TypeCheckMethodCallExpr::check): Remove TypeCheckBase namespace
+	qualifier.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* typecheck/rust-autoderef.cc: Remove TypeCheckBase qualifier.
+	* typecheck/rust-hir-trait-resolve.cc: Remove TypeCheckBase
+	qualifier.
+	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::unify_site):
+	Remove unify_site.
+	* typecheck/rust-hir-type-check-base.h: Remove unify_site
+	header.
+	* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve):
+	Remove TypeCheckBase qualifier.
+	* typecheck/rust-type-util.cc (unify_site): Add unify_site
+	function.
+	* typecheck/rust-type-util.h (unify_site): Add unify_site
+	prototype.
+	* typecheck/rust-tyty-call.cc (TypeCheckMethodCallExpr::check):
+	Remove TypeCheckBase qualifier.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_type): Allow LEFT_SHIFT to
+	start a type and then split it in `parse_qualified_path_type`
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* parse/rust-parse-impl.h (Parser::parse_path_generic_args): Split leading
+	`LEFT_SHIFT` token into two `LEFT_ANGLE` tokens when parsing generic arguments.
+	(Parser::parse_type_path_segment): Allow `LEFT_ANGLE` as starting token for
+	parsing generic arguments.
+
+2024-01-16  mxlol233  <mxlol233@outlook.com>
+
+	* checks/errors/rust-feature-gate.cc: Add implementations
+	for `rustc_attri`.
+	* checks/errors/rust-feature-gate.h: Likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* parse/rust-parse-impl.h
+	(Parser::parse_pattern): Add.
+	(Parser::parse_pattern_no_alt): Rename.
+	* parse/rust-parse.h:
+	(Parser::parse_pattern): Add.
+	(Parser::parse_pattern_no_alt): Rename.
+
 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
 
 	* lang.opt.urls: New file, autogenerated by
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ef27cf1aedf..9cb5a9dc3ef 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,1702 @@
+2024-01-16  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	PR c++/113292
+	* g++.dg/modules/pr113292_a.H: New test.
+	* g++.dg/modules/pr113292_b.C: New test.
+	* g++.dg/modules/pr113292_c.C: New test.
+
+2024-01-16  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/113340
+	* g++.dg/cpp23/explicit-obj-diagnostics9.C: New test.
+
+2024-01-16  John David Anglin  <danglin@gcc.gnu.org>
+
+	* gcc.dg/pr111409.c: Add hppa*-*-hpux* to targets which do
+	not support split DWARF.
+
+2024-01-16  waffl3x  <waffl3x@protonmail.com>
+
+	PR c++/113307
+	* g++.dg/cpp23/explicit-obj-diagnostics3.C: Add test for
+	rejection of packs.
+
+2024-01-16  John David Anglin  <danglin@gcc.gnu.org>
+
+	* gcc.dg/array-quals-1.c: Add .data.rel.ro.local to read only
+	sections.
+
+2024-01-16  John David Anglin  <danglin@gcc.gnu.org>
+
+	* gcc.dg/atomic/stdatomic-flag.c: Remove xfail.
+	* gcc.dg/atomic/stdatomic-flag-2.c: Likewise.
+
+2024-01-16  John David Anglin  <danglin@gcc.gnu.org>
+
+	PR tree-optimization/110794
+	* g++.dg/pr99966.C: xfail scan-tree-dump-not throw on hppa*64*-*-*.
+
+2024-01-16  John David Anglin  <danglin@gcc.gnu.org>
+
+	* gcc.dg/c23-tag-alias-2.c: Require target lto.
+	* gcc.dg/c23-tag-alias-3.c: Likewise.
+	* gcc.dg/gnu23-tag-alias-3.c: Likewise.
+	* gcc.dg/scantest-lto.c: Likewise.
+
+2024-01-16  John David Anglin  <danglin@gcc.gnu.org>
+
+	* gcc.dg/cmp-mem-const-3.c: Skip on lp64 hppa*-*-*.
+	* gcc.dg/cmp-mem-const-4.c: Likewise.
+	* gcc.dg/cmp-mem-const-5.c: Likewise.
+	* gcc.dg/cmp-mem-const-6.c: Likewise.
+
+2024-01-16  John David Anglin  <danglin@gcc.gnu.org>
+
+	PR tree-optimization/91624
+	* gcc.dg/tree-ssa/sra-17.c: xfail all scan-tree-dump-times
+	checks on hppa*64*-*-*.
+	* gcc.dg/tree-ssa/sra-18.c: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/tuple_float_index.rs: New test.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* rust/compile/v0-mangle2.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/invalid_variadics.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/invalid_label_name.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/lifetime_name_validation.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/pattern_variadic.rs: New test.
+	* rust/execute/torture/named_variadic.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/extern_c_named_variadic.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/parse_variadic_function.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/issue-2709.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/not_a_float_literal_tuple_index.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/issue-2665.rs: New test.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* rust/compile/tupple_struct_pattern_tuple.rs: New test.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* rust/compile/v0-mangle1.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/closure_in_closure.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/macro-issue2653.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/macro57.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/macro_rules_macro_rules.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/while_break_expr.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/range_from_expr_for_loop.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/parse_item_default_macro.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/parse_generic_path_expr.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/match_break.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/parse_pub_unit_type.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/parse_global_path_generic.rs: New test.
+
+2024-01-16  Jakub Dupak  <dev@jakubdupak.com>
+
+	* rust/compile/issue-2645.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/wrong_lhs_assignment.rs: update error message
+	* rust/compile/issue-2391.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/variadic.rs: Added new checks.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/assume.rs: New test.
+
+2024-01-16  Dave Evans  <dave@dmetwo.org>
+
+	* rust/compile/issue-2431.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/privacy6.rs: Uncomment commented out functions.
+	* rust/compile/privacy9.rs: Fix unused variables.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/privacy9.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/cfg2.rs: Updated according to new message.
+	* rust/compile/issue-2139.rs: likewise.
+	* rust/compile/issue-2190-1.rs: likewise.
+	* rust/compile/method1.rs: likewise.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/execute/torture/iter1.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/generics7.rs: Added Errorcode hint.
+	* rust/compile/generics8.rs: Updated dejagnu comment.
+	* rust/compile/issue-925.rs: Added Errorcode hint.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/issue-2029.rs:
+	Updated for dejagnu testcase.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/privacy1.rs: Added errorcode.
+	* rust/compile/privacy3.rs: likewise.
+	* rust/compile/privacy4.rs: likewise.
+	* rust/compile/privacy5.rs: likewise.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/type-if.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/let_alt.rs: Updated comment.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/iterators1.rs: this should be casting to the $ty
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/execute/torture/issue-2583.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/nested_macro_definition.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/match4.rs:
+	Updated new error commment.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/issue-1725-2.rs:
+	Updated dejagnu message.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/iterators1.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/generics13.rs:
+	for dejagnu,
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/issue-2479.rs: Updated comment.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/issue-1589.rs: Updated comment for dejagnu.
+	* rust/compile/trait-cycle.rs: New relevant test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/generics10.rs: for dejagnu.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/generics6.rs: Updated dejagnu comment.
+	* rust/compile/generics7.rs: likewise.
+	* rust/compile/issue-925.rs: likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/issue-2514.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/match5.rs:
+	Updated comment for dejagnu.
+	* rust/compile/pattern-struct.rs: New test for ICE.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/inline_2.rs: Added new message.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/auto_trait_invalid.rs:
+	Updated comment.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/bad_inner_doc.rs:
+	Updated comment to pass testcase.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/inline_2.rs: Added new case.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/bad_as_bool_char.rs:
+	Updated comment to pass test case.
+	* rust/compile/cast1.rs: likewise.
+	* rust/compile/cast4.rs: likewise.
+	* rust/compile/cast5.rs: likewise.
+	* rust/compile/all-cast.rs: New test for all error codes.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/attr_deprecated_2.rs:
+	Updated comment to pass the testcase.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/abi-options1.rs: updated comment for testcase.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/arrays2.rs: changed comment to pass
+	testcase.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* rust/compile/unicode_norm1.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/name_resolution10.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/name_resolution6.rs: New test.
+	* rust/compile/name_resolution7.rs: New test.
+	* rust/compile/name_resolution8.rs: New test.
+	* rust/compile/name_resolution9.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/undeclared_label.rs: New test for E0426.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/feature.rs: Added new unknown feature.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/arrays1.rs: changed comment to pass testcase.
+	* rust/compile/bad_type1.rs: likewise.
+	* rust/compile/bad_type2.rs: likewise.
+	* rust/compile/const_generics_6.rs: likewise.
+	* rust/compile/deadcode_err1.rs: likewise.
+	* rust/compile/deadcode_err2.rs: likewise.
+	* rust/compile/func1.rs: likewise.
+	* rust/compile/func3.rs: likewise.
+	* rust/compile/func4.rs: likewise.
+	* rust/compile/func5.rs: likewise.
+	* rust/compile/generics1.rs: likewise.
+	* rust/compile/generics2.rs: likewise.
+	* rust/compile/generics3.rs: likewise.
+	* rust/compile/implicit_returns_err1.rs: likewise.
+	* rust/compile/implicit_returns_err2.rs: likewise.
+	* rust/compile/implicit_returns_err3.rs: likewise.
+	* rust/compile/implicit_returns_err4.rs: likewise.
+	* rust/compile/issue-1152.rs: likewise.
+	* rust/compile/issue-2477.rs: likewise.
+	* rust/compile/reference1.rs: likewise.
+	* rust/compile/stmt_with_block_err1.rs: likewise.
+	* rust/compile/traits1.rs: likewise.
+	* rust/compile/traits2.rs: likewise.
+	* rust/compile/tuple_mismatch.rs: likewise.
+	* rust/compile/tuple_struct3.rs: likewise.
+	* rust/compile/mismatched-types.rs: New test from rustc.
+
+2024-01-16  Marc Poulhiès  <dkm@kataplop.net>
+
+	* rust/compile/empty_file: New file.
+	* rust/compile/issue-2421_str.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2479.rs: New test.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* rust/compile/bad-crate-name.rs: Moved to...
+	* rust/compile/bad-crate-name1.rs: ...here.
+	* rust/compile/bad-crate-name2.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2477.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/bounds1.rs: Apply sized trait
+	* rust/compile/canonical_paths1.rs: likewise
+	* rust/compile/cast_generics.rs: likewise
+	* rust/compile/closure_no_type_anno.rs: likewise
+	* rust/compile/complex_qualified_path_in_expr.rs: likewise
+	* rust/compile/const-issue1440.rs: likewise
+	* rust/compile/const_generics_1.rs: likewise
+	* rust/compile/const_generics_8.rs: likewise
+	* rust/compile/derive_macro1.rs: likewise
+	* rust/compile/derive_macro3.rs: likewise
+	* rust/compile/derive_macro4.rs: likewise
+	* rust/compile/derive_macro6.rs: likewise
+	* rust/compile/expected_type_args2.rs: likewise
+	* rust/compile/expected_type_args3.rs: likewise
+	* rust/compile/generics1.rs: likewise
+	* rust/compile/generics11.rs: likewise
+	* rust/compile/generics12.rs: likewise
+	* rust/compile/generics2.rs: likewise
+	* rust/compile/generics3.rs: likewise
+	* rust/compile/generics4.rs: likewise
+	* rust/compile/generics6.rs: likewise
+	* rust/compile/generics7.rs: likewise
+	* rust/compile/generics8.rs: likewise
+	* rust/compile/if_let_expr.rs: likewise
+	* rust/compile/issue-1005.rs: likewise
+	* rust/compile/issue-1019.rs: likewise
+	* rust/compile/issue-1031.rs: likewise
+	* rust/compile/issue-1034.rs: likewise
+	* rust/compile/issue-1128.rs: likewise
+	* rust/compile/issue-1129-2.rs: likewise
+	* rust/compile/issue-1130.rs: likewise
+	* rust/compile/issue-1131.rs: likewise
+	* rust/compile/issue-1165.rs: likewise
+	* rust/compile/issue-1173.rs: likewise
+	* rust/compile/issue-1235.rs: likewise
+	* rust/compile/issue-1237.rs: likewise
+	* rust/compile/issue-1289.rs: likewise
+	* rust/compile/issue-1383.rs: likewise
+	* rust/compile/issue-1447.rs: likewise
+	* rust/compile/issue-1589.rs: likewise
+	* rust/compile/issue-1725-1.rs: likewise
+	* rust/compile/issue-1725-2.rs: likewise
+	* rust/compile/issue-1773.rs: likewise
+	* rust/compile/issue-1786.rs: likewise
+	* rust/compile/issue-1893.rs: likewise
+	* rust/compile/issue-1901.rs: likewise
+	* rust/compile/issue-1930.rs: likewise
+	* rust/compile/issue-1981.rs: likewise
+	* rust/compile/issue-2019-1.rs: likewise
+	* rust/compile/issue-2019-2.rs: likewise
+	* rust/compile/issue-2019-3.rs: likewise
+	* rust/compile/issue-2036.rs: likewise
+	* rust/compile/issue-2037.rs: likewise
+	* rust/compile/issue-2070.rs: likewise
+	* rust/compile/issue-2105.rs: likewise
+	* rust/compile/issue-2106.rs: likewise
+	* rust/compile/issue-2135.rs: likewise
+	* rust/compile/issue-2136-1.rs: likewise
+	* rust/compile/issue-2136-2.rs: likewise
+	* rust/compile/issue-2139.rs: likewise
+	* rust/compile/issue-2142.rs: likewise
+	* rust/compile/issue-2165.rs: likewise
+	* rust/compile/issue-2166.rs: likewise
+	* rust/compile/issue-2190-1.rs: likewise
+	* rust/compile/issue-2190-2.rs: likewise
+	* rust/compile/issue-2195.rs: likewise
+	* rust/compile/issue-2238.rs: likewise
+	* rust/compile/issue-2304.rs: likewise
+	* rust/compile/issue-850.rs: likewise
+	* rust/compile/issue-855.rs: likewise
+	* rust/compile/issue-925.rs: likewise
+	* rust/compile/macro-issue1400.rs: likewise
+	* rust/compile/macro20.rs: likewise
+	* rust/compile/macro23.rs: likewise
+	* rust/compile/macro40.rs: likewise
+	* rust/compile/macro54.rs: likewise
+	* rust/compile/name_resolution2.rs: likewise
+	* rust/compile/name_resolution4.rs: likewise
+	* rust/compile/nested_generic.rs: likewise
+	* rust/compile/parse_associated_type_as_generic_arg.rs: likewise
+	* rust/compile/parse_associated_type_as_generic_arg2.rs: likewise
+	* rust/compile/parse_associated_type_as_generic_arg3.rs: likewise
+	* rust/compile/parse_complex_generic_application.rs: likewise
+	* rust/compile/parse_complex_generic_application2.rs: likewise
+	* rust/compile/path_as_generic_arg.rs: likewise
+	* rust/compile/privacy4.rs: likewise
+	* rust/compile/privacy6.rs: likewise
+	* rust/compile/sizeof-stray-infer-var-bug.rs: likewise
+	* rust/compile/stmt_with_block_dot.rs: likewise
+	* rust/compile/torture/associated_types1.rs: likewise
+	* rust/compile/torture/forward_decl_5.rs: likewise
+	* rust/compile/torture/generics1.rs: likewise
+	* rust/compile/torture/generics10.rs: likewise
+	* rust/compile/torture/generics11.rs: likewise
+	* rust/compile/torture/generics12.rs: likewise
+	* rust/compile/torture/generics13.rs: likewise
+	* rust/compile/torture/generics14.rs: likewise
+	* rust/compile/torture/generics15.rs: likewise
+	* rust/compile/torture/generics16.rs: likewise
+	* rust/compile/torture/generics17.rs: likewise
+	* rust/compile/torture/generics18.rs: likewise
+	* rust/compile/torture/generics19.rs: likewise
+	* rust/compile/torture/generics2.rs: likewise
+	* rust/compile/torture/generics20.rs: likewise
+	* rust/compile/torture/generics21.rs: likewise
+	* rust/compile/torture/generics22.rs: likewise
+	* rust/compile/torture/generics23.rs: likewise
+	* rust/compile/torture/generics24.rs: likewise
+	* rust/compile/torture/generics25.rs: likewise
+	* rust/compile/torture/generics26.rs: likewise
+	* rust/compile/torture/generics27.rs: likewise
+	* rust/compile/torture/generics28.rs: likewise
+	* rust/compile/torture/generics29.rs: likewise
+	* rust/compile/torture/generics3.rs: likewise
+	* rust/compile/torture/generics30.rs: likewise
+	* rust/compile/torture/generics31.rs: likewise
+	* rust/compile/torture/generics32.rs: likewise
+	* rust/compile/torture/generics4.rs: likewise
+	* rust/compile/torture/generics5.rs: likewise
+	* rust/compile/torture/generics6.rs: likewise
+	* rust/compile/torture/generics7.rs: likewise
+	* rust/compile/torture/generics8.rs: likewise
+	* rust/compile/torture/generics9.rs: likewise
+	* rust/compile/torture/intrinsics-2.rs: likewise
+	* rust/compile/torture/intrinsics-6.rs: likewise
+	* rust/compile/torture/intrinsics-7.rs: likewise
+	* rust/compile/torture/intrinsics-8.rs: likewise
+	* rust/compile/torture/issue-1024.rs: likewise
+	* rust/compile/torture/issue-1075.rs: likewise
+	* rust/compile/torture/issue-1432.rs: likewise
+	* rust/compile/torture/issue-1555.rs: likewise
+	* rust/compile/torture/issue-368.rs: likewise
+	* rust/compile/torture/issue-808.rs: likewise
+	* rust/compile/torture/issue-862.rs: likewise
+	* rust/compile/torture/issue-893-2.rs: likewise
+	* rust/compile/torture/issue-893.rs: likewise
+	* rust/compile/torture/must_use2.rs: likewise
+	* rust/compile/torture/nested_fn2.rs: likewise
+	* rust/compile/torture/phantom_data.rs: likewise
+	* rust/compile/torture/range-lang-item1.rs: likewise
+	* rust/compile/torture/traits1.rs: likewise
+	* rust/compile/torture/traits11.rs: likewise
+	* rust/compile/torture/traits12.rs: likewise
+	* rust/compile/torture/traits13.rs: likewise
+	* rust/compile/torture/traits14.rs: likewise
+	* rust/compile/torture/traits15.rs: likewise
+	* rust/compile/torture/traits16.rs: likewise
+	* rust/compile/torture/traits17.rs: likewise
+	* rust/compile/torture/traits18.rs: likewise
+	* rust/compile/torture/traits19.rs: likewise
+	* rust/compile/torture/traits2.rs: likewise
+	* rust/compile/torture/traits3.rs: likewise
+	* rust/compile/torture/traits4.rs: likewise
+	* rust/compile/torture/traits5.rs: likewise
+	* rust/compile/torture/traits6.rs: likewise
+	* rust/compile/torture/traits7.rs: likewise
+	* rust/compile/torture/traits8.rs: likewise
+	* rust/compile/torture/traits9.rs: likewise
+	* rust/compile/torture/transmute-size-check-1.rs: likewise
+	* rust/compile/torture/transmute1.rs: likewise
+	* rust/compile/torture/uninit-intrinsic-1.rs: likewise
+	* rust/compile/torture/utf8_identifiers.rs: likewise
+	* rust/compile/traits1.rs: likewise
+	* rust/compile/traits10.rs: likewise
+	* rust/compile/traits11.rs: likewise
+	* rust/compile/traits12.rs: likewise
+	* rust/compile/traits2.rs: likewise
+	* rust/compile/traits3.rs: likewise
+	* rust/compile/traits4.rs: likewise
+	* rust/compile/traits5.rs: likewise
+	* rust/compile/traits6.rs: likewise
+	* rust/compile/traits7.rs: likewise
+	* rust/compile/traits8.rs: likewise
+	* rust/compile/traits9.rs: likewise
+	* rust/compile/type-bindings1.rs: likewise
+	* rust/compile/unconstrained_type_param.rs: likewise
+	* rust/compile/unsafe10.rs: likewise
+	* rust/execute/torture/closure1.rs: likewise
+	* rust/execute/torture/closure2.rs: likewise
+	* rust/execute/torture/closure3.rs: likewise
+	* rust/execute/torture/closure4.rs: likewise
+	* rust/execute/torture/coercion1.rs: likewise
+	* rust/execute/torture/coercion2.rs: likewise
+	* rust/execute/torture/coercion3.rs: likewise
+	* rust/execute/torture/copy_nonoverlapping1.rs: likewise
+	* rust/execute/torture/derive_macro1.rs: likewise
+	* rust/execute/torture/derive_macro3.rs: likewise
+	* rust/execute/torture/derive_macro4.rs: likewise
+	* rust/execute/torture/index1.rs: likewise
+	* rust/execute/torture/issue-1120.rs: likewise
+	* rust/execute/torture/issue-1133.rs: likewise
+	* rust/execute/torture/issue-1198.rs: likewise
+	* rust/execute/torture/issue-1232.rs: likewise
+	* rust/execute/torture/issue-1249.rs: likewise
+	* rust/execute/torture/issue-1436.rs: likewise
+	* rust/execute/torture/issue-1496.rs: likewise
+	* rust/execute/torture/issue-1720-2.rs: likewise
+	* rust/execute/torture/issue-1720.rs: likewise
+	* rust/execute/torture/issue-2052.rs: likewise
+	* rust/execute/torture/issue-2179.rs: likewise
+	* rust/execute/torture/issue-2180.rs: likewise
+	* rust/execute/torture/issue-2236.rs: likewise
+	* rust/execute/torture/issue-647.rs: likewise
+	* rust/execute/torture/issue-845.rs: likewise
+	* rust/execute/torture/issue-851.rs: likewise
+	* rust/execute/torture/issue-858.rs: likewise
+	* rust/execute/torture/macros23.rs: likewise
+	* rust/execute/torture/macros28.rs: likewise
+	* rust/execute/torture/method2.rs: likewise
+	* rust/execute/torture/method3.rs: likewise
+	* rust/execute/torture/method4.rs: likewise
+	* rust/execute/torture/operator_overload_1.rs: likewise
+	* rust/execute/torture/operator_overload_10.rs: likewise
+	* rust/execute/torture/operator_overload_11.rs: likewise
+	* rust/execute/torture/operator_overload_12.rs: likewise
+	* rust/execute/torture/operator_overload_2.rs: likewise
+	* rust/execute/torture/operator_overload_3.rs: likewise
+	* rust/execute/torture/operator_overload_4.rs: likewise
+	* rust/execute/torture/operator_overload_5.rs: likewise
+	* rust/execute/torture/operator_overload_6.rs: likewise
+	* rust/execute/torture/operator_overload_7.rs: likewise
+	* rust/execute/torture/operator_overload_8.rs: likewise
+	* rust/execute/torture/operator_overload_9.rs: likewise
+	* rust/execute/torture/prefetch_data.rs: likewise
+	* rust/execute/torture/ref-pattern2.rs: likewise
+	* rust/execute/torture/slice-magic.rs: likewise
+	* rust/execute/torture/slice-magic2.rs: likewise
+	* rust/execute/torture/slice1.rs: likewise
+	* rust/execute/torture/str-layout1.rs: likewise
+	* rust/execute/torture/trait1.rs: likewise
+	* rust/execute/torture/trait10.rs: likewise
+	* rust/execute/torture/trait11.rs: likewise
+	* rust/execute/torture/trait12.rs: likewise
+	* rust/execute/torture/trait13.rs: likewise
+	* rust/execute/torture/trait2.rs: likewise
+	* rust/execute/torture/trait3.rs: likewise
+	* rust/execute/torture/trait4.rs: likewise
+	* rust/execute/torture/trait5.rs: likewise
+	* rust/execute/torture/trait6.rs: likewise
+	* rust/execute/torture/trait7.rs: likewise
+	* rust/execute/torture/trait8.rs: likewise
+	* rust/execute/torture/trait9.rs: likewise
+	* rust/execute/torture/transmute1.rs: likewise
+	* rust/execute/torture/wrapping_op1.rs: likewise
+	* rust/execute/torture/wrapping_op2.rs: likewise
+	* rust/link/generic_function_0.rs: likewise
+	* rust/link/generic_function_1.rs: likewise
+	* rust/compile/issue-2375.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/non_member_const.rs: add missing error message
+	* rust/compile/issue-2478.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/break2.rs: Modified file to pass test case.
+	* rust/compile/break_with_value_inside_loop.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/proc_macro_attribute_non_root_function.rs: New test.
+	* rust/compile/proc_macro_attribute_non_root_method.rs: New test.
+	* rust/compile/proc_macro_attribute_non_root_module.rs: New test.
+	* rust/compile/proc_macro_derive_non_root_function.rs: New test.
+	* rust/compile/proc_macro_derive_non_root_method.rs: New test.
+	* rust/compile/proc_macro_derive_non_root_module.rs: New test.
+	* rust/compile/proc_macro_non_root_function.rs: New test.
+	* rust/compile/proc_macro_non_root_method.rs: New test.
+	* rust/compile/proc_macro_non_root_module.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/proc_macro_pub_function.rs: New test.
+	* rust/compile/proc_macro_pub_module.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/proc_macro_attribute_crate_type.rs: Replace
+	dg-excess-errors with dg-error and fix the line so the test
+	can pass.
+	* rust/compile/proc_macro_crate_type.rs: Likewise.
+	* rust/compile/proc_macro_derive_crate_type.rs: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/proc_macro_attribute_private.rs: New test.
+	* rust/compile/proc_macro_derive_private.rs: New test.
+	* rust/compile/proc_macro_private.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/proc_macro_derive_non_function.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/proc_macro_attribute_non_function.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/proc_macro_non_function.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/abi-vardaic.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/non_member_const.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/break1.rs: Modified to pass test case.
+	* rust/compile/continue1.rs: likewise.
+	* rust/compile/break_continue_outside_loop.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/proc_macro_derive_malformed.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/proc_macro_attribute_crate_type.rs: New test.
+	* rust/compile/proc_macro_crate_type.rs: New test.
+	* rust/compile/proc_macro_derive_crate_type.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/found_struct.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/changed_intrinsics.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/torture/intrinsics-3.rs: Updated comment to pass the test case.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/bad_pub_enumitems.rs: changed comment to pass test cases.
+	* rust/compile/dup_fields.rs: likewise.
+	* rust/execute/same_field_name.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/wrong_lhs_assignment.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/func2.rs: updated comment to pass new test cases.
+	* rust/compile/tuple_struct2.rs: likewise.
+	* rust/compile/wrong_no_of_parameters.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+	    GuillaumeGomez  <guillaume1.gomez@gmail.com>
+
+	* rust/compile/name_resolution1.rs: New test.
+	* rust/compile/name_resolution2.rs: New test.
+	* rust/compile/name_resolution3.rs: New test.
+	* rust/compile/name_resolution4.rs: New test.
+	* rust/compile/name_resolution5.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/link/trait_import_0.rs: Mark test as xfail.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/break-rust2.rs: Updated comment to pass testcase.
+	* rust/compile/const_generics_3.rs: likewise.
+	* rust/compile/const_generics_4.rs: likewise.
+	* rust/compile/not_find_value_in_scope.rs: New test.
+
+2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>
+
+	* rust/compile/missing_constructor_fields.rs: New test.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* rust/compile/broken_utf8.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/macro-issue2273.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2105.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/rust_abi.rs: New test.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* rust/compile/bytecharstring.rs:add test for it
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/macro56.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-1981.rs: Fix badly copied libcore code test
+	* rust/compile/issue-2330.rs: New test.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* rust/compile/torture/raw_identifiers.rs: New test.
+	* rust/compile/torture/utf8_identifiers.rs: New test.
+
+2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>
+
+	* rust/compile/torture/utf8_whitespaces.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/macro-issue2268.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/macro-issue2264.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2304.rs: New test.
+
+2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>
+
+	* rust/compile/macro54.rs: New test.
+	* rust/compile/macro55.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-1893.rs: fully compile the test case
+
+2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>
+
+	* rust/compile/braced_macro_arm.rs: New test.
+	* rust/compile/braced_macro_statements1.rs: New test.
+	* rust/compile/braced_macro_statements2.rs: New test.
+	* rust/compile/braced_macro_statements3.rs: New test.
+	* rust/compile/issue-2225.rs: Update test.
+	* rust/compile/macro53.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/macro6.rs: Remove check for direct error.
+	* rust/compile/macro7.rs: Likewise.
+	* rust/compile/macro-issue2229.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2036.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2019-2.rs: New test.
+	* rust/compile/issue-2019-3.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2019-1.rs: New test.
+
+2024-01-16  Dave Evans  <dave@dmetwo.org>
+
+	* rust/compile/issue-1813.rs: New test.
+
+2024-01-16  TieWay59  <tieway59@foxmail.com>
+
+	* rust/compile/break1.rs: remove dg-error "failed to type resolve expression"
+	* rust/compile/break2.rs: Likewise
+	* rust/compile/cfg2.rs: Likewise
+	* rust/compile/continue1.rs: Likewise
+	* rust/compile/generics4.rs: Likewise
+	* rust/compile/generics6.rs: Likewise
+	* rust/compile/generics7.rs: Likewise
+	* rust/compile/issue-2029.rs: Likewise
+	* rust/compile/issue-2139.rs: Likewise
+	* rust/compile/issue-2190-1.rs: Likewise
+	* rust/compile/issue-925.rs: Likewise
+	* rust/compile/method1.rs: Likewise
+	* rust/compile/shadow1.rs: Likewise
+	* rust/compile/type-bindings1.rs: Likewise
+	* rust/compile/unary_negation.rs: Likewise
+	* rust/compile/unary_not.rs: Likewise
+	* rust/compile/unconstrained_type_param.rs: Likewise
+	* rust/compile/usize1.rs: Likewise
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/traits2.rs: update error message
+	* rust/compile/traits3.rs: update error message
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/derive_empty.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/test_mod.rs: Moved to...
+	* rust/compile/issue-1089/test_mod.rs: ...here.
+	* rust/compile/mod_missing_middle.rs: Fix paths.
+	* rust/compile/missing_middle/both_path.rs: Moved to...
+	* rust/compile/mod_missing_middle/missing_middle/both_path.rs: ...here.
+	* rust/compile/missing_middle/explicit.not.rs: Moved to...
+	* rust/compile/mod_missing_middle/missing_middle/explicit.not.rs: ...here.
+	* rust/compile/missing_middle/other.rs: Moved to...
+	* rust/compile/mod_missing_middle/missing_middle/explicit.not/other.rs: ...here.
+	* rust/compile/missing_middle/inner_path.rs: Moved to...
+	* rust/compile/mod_missing_middle/missing_middle/inner_path.rs: ...here.
+	* rust/compile/missing_middle/outer_path.rs: Moved to...
+	* rust/compile/mod_missing_middle/missing_middle/outer_path.rs: ...here.
+	* rust/compile/missing_middle/sub/mod.rs: Moved to...
+	* rust/compile/mod_missing_middle/missing_middle/sub/mod.rs: ...here.
+	* rust/compile/torture/modules/mod.rs: Moved to...
+	* rust/compile/torture/extern_mod1/modules/mod.rs: ...here.
+	* rust/execute/torture/modules/mod.rs: Moved to...
+	* rust/execute/torture/extern_mod4/modules/mod.rs: ...here.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/derive_macro8.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2165.rs: New test.
+	* rust/compile/issue-2166.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/struct-expr-parse.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/derive_macro7.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/derive_macro4.rs: New test.
+	* rust/compile/derive_macro6.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/execute/torture/derive_macro4.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/macro-delim.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/macro43.rs: Fix test with new derive macros.
+	* rust/compile/derive_macro1.rs: New test.
+	* rust/compile/derive_macro3.rs: New test.
+	* rust/execute/torture/derive_macro1.rs: New test.
+	* rust/execute/torture/derive_macro3.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/cfg6.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2195.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2238.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/issue-2225.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/issue-2207.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/execute/torture/issue-2236.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2190-1.rs: New test.
+	* rust/compile/issue-2190-2.rs: New test.
+
+2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>
+
+	* rust/compile/nested_macro_use3.rs: New test.
+
+2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>
+
+	* rust/compile/cfg-attr.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/doc_macro.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/macro-issue2194.rs: New test.
+
+2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>
+
+	* rust/compile/for_expr.rs: New test.
+	* rust/compile/issue-407-2.rs: Update compiler output.
+	* rust/compile/issue-407.rs: Update compiler output.
+	* rust/compile/issue-867.rs: Update compiler output.
+	* rust/compile/issue-2189.rs: New test.
+	* rust/compile/macro_call_statement.rs: New test.
+	* rust/compile/stmt_with_block_dot.rs: New test.
+	* rust/compile/torture/loop8.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/macro-issue2192.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/const-issue1440.rs: Remove LE conditional compilation.
+	* rust/compile/torture/issue-1432.rs: Likewise.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/execute/torture/coercion3.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/execute/torture/issue-2179.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/execute/torture/issue-2180.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2188.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/parse_specialization.rs:
+	Add "default unsafe" coverage.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2178.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/macro_use1.rs: New test.
+	* rust/execute/torture/macro_use1.rs: New test.
+	* rust/compile/nested_macro_use1.rs: New test.
+	* rust/compile/nested_macro_use2.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/issue-1446.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/execute/torture/cfg-tail.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/macro52.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/issue-2125.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2135.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2106.rs: New test.
+	* rust/compile/issue-1524.rs: regression (placeholder generic)
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2142.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2136-1.rs: New test.
+	* rust/compile/issue-2136-2.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2139.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-1893.rs: regression
+	* rust/compile/traits12.rs: rustc uses a custom error message here
+	* rust/compile/unconstrained_type_param.rs: extra error message
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/execute/torture/issue-1852-1.rs: New test.
+	* rust/execute/torture/issue-1852.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/issue-1807.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/let_alt.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-852.rs: New test.
+
+2024-01-16  Sergey Bugaev  <bugaevc@gmail.com>
+
+	* lib/prune.exp (prune_ices):
+	Also prune "You have broken GCC Rust. This is a feature."
+	* rust/compile/break-rust1.rs: New test
+	* rust/compile/break-rust2.rs: New test
+	* rust/compile/break-rust3.rs: New test
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/if_let_expr.rs: Increase test coverage.
+
+2024-01-16  Sebastian Kirmayer  <gnu@kirmayer.eu>
+
+	* rust/compile/macro-issue2092.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/macro51.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2070.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/execute/torture/issue-2080.rs: New test.
+
+2024-01-16  Emanuele Micheletti  <micheletti.emanuele@hotmail.com>
+
+	* rust/compile/cast5.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/const_generics_5.rs: update test case
+	* rust/compile/issue-2043.rs: New test.
+	* rust/compile/issue-2039.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2042.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-925.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/bounds1.rs: Moved to...
+	* rust/compile/bounds1.rs: ...here.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2029.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/execute/torture/issue-2052.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/array4.rs: New test.
+	* rust/execute/torture/arrays.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/privacy8.rs: New test.
+
+2024-01-16  emanuele-em  <micheletti.emanuele@hotmail.com>
+
+	* rust/compile/cast4.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/macro49.rs: New test.
+	* rust/compile/macro50.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-2037.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-1893.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-850.rs: New test.
+	* rust/compile/issue-855.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-1981.rs: New test.
+
+2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>
+
+	* rust/compile/torture/alt_patterns1.rs: New test.
+
+2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>
+
+	* rust/compile/multiple_bindings2.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/sizeof-stray-infer-var-bug.rs: New test.
+
+2024-01-16  Tage Johansson  <frans.tage@gmail.com>
+
+	* rust/compile/macro47.rs: Test that :vis can be followed by some keywords
+	* rust/compile/macro48.rs: Test that :vis cannot be followed by the keyword priv
+
+2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>
+
+	* rust/compile/multiple_bindings1.rs: New test.
+
+2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>
+
+	* rust/execute/torture/closure4.rs: New test.
+	* rust/execute/torture/ref-pattern2.rs: New test.
+
+2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>
+
+	* rust/compile/ref_pattern_fn_param.rs: Moved to...
+	* rust/compile/ref_pattern_fn_param1.rs: ...here.
+	* rust/compile/ref_pattern_fn_param2.rs: New test.
+	* rust/execute/torture/ref-pattern1.rs: New test.
+
+2024-01-16  goar5670  <mahadelr19@gmail.com>
+
+	* rust/compile/ref_pattern_fn_param.rs: New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/lang-impl.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/stringify.rs: Add a basic test with some text.
+	* rust/execute/torture/builtin_macro_stringify.rs: Verify the
+	text is left as is without any other macro expansion.
+
+2024-01-16  Nikos Alexandris  <nikos-alexandris@protonmail.com>
+
+	* rust/compile/tuple_mismatch.rs: New test.
+
+2024-01-16  goar5670  <mahadelr19@gmail.com>
+
+	* rust/compile/complex_qualified_path_in_expr.rs : New test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/closure_no_type_anno.rs: Extend test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-1524.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/parse_associated_type_as_generic_arg3.rs: remove -fsyntax-only
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/parse_associated_type_as_generic_arg.rs: it now works without -fsyntax-only
+	* rust/compile/parse_associated_type_as_generic_arg2.rs: likewise
+
+2024-01-16  goar5670  <mahadelr19@gmail.com>
+
+	* rust/compile/closure_no_type_anno.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/while_let_expr.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/torture/uninit-intrinsic-1.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/zero_sized_slice.rs: New test.
+
+2024-01-16  Nikos Alexandris  <nikos-alexandris@protonmail.com>
+
+	* rust/compile/builtin_macro_include_bytes_location_info.rs: New test.
+	* rust/compile/builtin_macro_include_str_location_info.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/slice_rest_pattern.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/if_let_expr.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/torture/intrinsics-8.rs: New test.
+
+2024-01-16  mxlol233  <mxlol233@outlook.com>
+
+	* rust/compile/feature_extern_types.rs:New file.
+
+2024-01-16  bl7awy  <mahadelr19@gmail.com>
+
+	* rust/compile/cast_generics.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-1901.rs: New test.
+
+2024-01-16  Philip Herron  <herron.philip@googlemail.com>
+
+	* rust/compile/issue-1930.rs: New test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/extern_type_item_missing_semi.rs: New failing
+	test.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* rust/compile/extern_type_item.rs: New test.
+
+2024-01-16  omkar-mohanty  <franzohouser@gmail.com>
+
+	* rust/compile/builtin_macro_eager3.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/parse_invalid_specialization.rs: New test.
+	* rust/compile/parse_specialization.rs: New test.
+	* rust/compile/default_not_a_kw.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/expand_macro_qual_path_in_type.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/auto_trait_invalid.rs: New test.
+	* rust/compile/auto_trait_valid.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/parse_associated_type_as_generic_arg3.rs: New test.
+
+2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
+
+	* rust/compile/parse_associated_type_as_generic_arg.rs: New test.
+	* rust/compile/parse_associated_type_as_generic_arg2.rs: New test.
+	* rust/compile/path_as_generic_arg.rs: New test.
+	* rust/compile/nested_generic.rs: New test.
+
+2024-01-16  mxlol233  <mxlol233@outlook.com>
+
+	* rust/compile/builtin_macro_compile_error.rs: Add
+	crate feature `rustc_attri`.
+	* rust/compile/builtin_macro_concat.rs: Likewise.
+	* rust/compile/builtin_macro_eager1.rs: Likewise.
+	* rust/compile/builtin_macro_eager2.rs: Likewise.
+	* rust/compile/builtin_macro_env.rs: Likewise.
+	* rust/compile/builtin_macro_include_bytes.rs:
+	Likewise.
+	* rust/compile/builtin_macro_include_str.rs:
+	Likewise.
+	* rust/compile/builtin_macro_not_found.rs:
+	Likewise.
+	* rust/compile/builtin_macro_recurse2.rs:
+	Likewise.
+	* rust/compile/feature_rust_attri0.rs:New file.
+	* rust/compile/feature_rust_attri1.rs:New file.
+	* rust/compile/include_empty.rs:Add crate feature
+	`rustc_attri`.
+	* rust/compile/issue-1830_bytes.rs:Likewise.
+	* rust/compile/issue-1830_str.rs:Likewise.
+	* rust/compile/macro42.rs:Likewise.
+	* rust/execute/torture/builtin_macro_cfg.rs:
+	Likewise.
+	* rust/execute/torture/builtin_macro_concat.rs:
+	Likewise.
+	* rust/execute/torture/builtin_macro_env.rs:
+	Likewise.
+	* rust/execute/torture/builtin_macro_include_bytes.rs:
+	Likewise.
+	* rust/execute/torture/builtin_macro_include_str.rs:
+	Likewise.
+	* rust/execute/torture/builtin_macro_line.rs:
+	Likewise.
+	* rust/execute/torture/builtin_macros1.rs:
+	Likewise.
+	* rust/execute/torture/builtin_macros3.rs:
+	Likewise.
+	* rust/execute/torture/macros29.rs:Likewise.
+	* rust/execute/torture/macros30.rs:Likewise.
+	* rust/execute/torture/macros31.rs:Likewise.
+
+2024-01-16  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+
+	PR target/112573
+	* gcc.target/aarch64/pr112573.c: Add new test.
+
+2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>
+
+	* rust/compile/pattern-or.rs: New test.
+
+2024-01-16  Daniel Cederman  <cederman@gaisler.com>
+
+	* gcc.dg/lto/pr88077_0.c: Change type to match alignment for SPARC
+
+2024-01-16  Daniel Cederman  <cederman@gaisler.com>
+
+	* gcc.dg/ifcvt-4.c: Skip for SPARC V8
+
+2024-01-16  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/113372
+	PR middle-end/90348
+	PR middle-end/110115
+	PR middle-end/111422
+	* gcc.dg/torture/bitint-49.c: New test.
+	* gcc.c-torture/execute/pr90348.c: New test.
+	* gcc.c-torture/execute/pr110115.c: New test.
+	* gcc.c-torture/execute/pr111422.c: New test.
+
+2024-01-16  Feng Xue  <fxue@os.amperecomputing.com>
+
+	* gcc.target/aarch64/bb-slp-pr113091.c: New test.
+
+2024-01-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+
+	PR target/113404
+	* gcc.target/riscv/rvv/base/big_endian-1.c: New test.
+	* gcc.target/riscv/rvv/base/big_endian-2.c: New test.
+
+2024-01-16  Kewen Lin  <linkw@linux.ibm.com>
+
+	PR testsuite/109705
+	* lib/target-supports.exp (check_effective_target_vect_long_mult):
+	Fix powerpc*-*-* checks.
+
+2024-01-16  Yanzhang Wang  <yanzhang.wang@intel.com>
+
+	* gcc.target/riscv/rvv/base/abi-call-args-1-run.c: Delete the
+	-Wno-psabi.
+	* gcc.target/riscv/rvv/base/abi-call-args-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-call-args-2-run.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-call-args-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-call-args-3-run.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-call-args-3.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-call-args-4-run.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-call-args-4.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-call-error-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-call-return-run.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-call-return.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-call-variant_cc.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-callee-saved-1-save-restore.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-callee-saved-1-zcmp.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-callee-saved-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c: Ditto.
+	* gcc.target/riscv/rvv/base/abi-callee-saved-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/fixed-point-vxrm-error.c: Ditto.
+	* gcc.target/riscv/rvv/base/fixed-point-vxrm.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-cvt-f.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-cvt-x.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-cvt-xu.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-10.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-11.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-12.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-13.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-14.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-15.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-16.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-17.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-18.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-19.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-20.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-21.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-22.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-23.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-24.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-25.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-26.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-27.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-28.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-29.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-3.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-30.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-31.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-32.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-33.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-34.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-35.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-36.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-37.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-38.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-39.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-4.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-40.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-41.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-42.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-43.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-44.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-45.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-46.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-47.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-48.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-49.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-5.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-50.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-51.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-52.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-53.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-54.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-55.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-56.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-57.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-58.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-59.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-6.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-60.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-61.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-62.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-63.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-64.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-65.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-66.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-67.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-68.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-69.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-7.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-70.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-71.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-72.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-73.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-74.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-75.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-76.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-77.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-8.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-9.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-autovec-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-autovec-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-autovec-3.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-autovec-4.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-error.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-insert-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-insert-10.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-insert-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-insert-3.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-insert-4.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-insert-5.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-insert-7.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-insert-8.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-insert-9.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-run-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-run-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-run-3.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-run-4.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm-run-5.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-frm.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-fwmacc.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-macc.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-madd.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-msac.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-msub.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-ncvt-f.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-ncvt-x.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-ncvt-xu.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-nmacc.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-nmadd.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-nmsac.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-nmsub.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-rec7.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-redosum.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-redusum.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-single-div.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-single-mul.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-single-rdiv.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-single-rsub.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-single-sub.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-sqrt.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-wcvt-x.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-wcvt-xu.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-widening-add.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-widening-mul.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-widening-sub.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-wmsac.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-wnmacc.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-wnmsac.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-wredosum.c: Ditto.
+	* gcc.target/riscv/rvv/base/float-point-wredusum.c: Ditto.
+	* gcc.target/riscv/rvv/base/intrisinc-vrgatherei16.c: Ditto.
+	* gcc.target/riscv/rvv/base/no-honor-frm-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/overloaded_rv32_vadd.c: Ditto.
+	* gcc.target/riscv/rvv/base/overloaded_rv32_vfadd.c: Ditto.
+	* gcc.target/riscv/rvv/base/overloaded_rv32_vget_vset.c: Ditto.
+	* gcc.target/riscv/rvv/base/overloaded_rv32_vloxseg2ei16.c: Ditto.
+	* gcc.target/riscv/rvv/base/overloaded_rv32_vmv.c: Ditto.
+	* gcc.target/riscv/rvv/base/overloaded_rv32_vreinterpret.c: Ditto.
+	* gcc.target/riscv/rvv/base/overloaded_rv64_vadd.c: Ditto.
+	* gcc.target/riscv/rvv/base/overloaded_rv64_vfadd.c: Ditto.
+	* gcc.target/riscv/rvv/base/overloaded_rv64_vget_vset.c: Ditto.
+	* gcc.target/riscv/rvv/base/overloaded_rv64_vloxseg2ei16.c: Ditto.
+	* gcc.target/riscv/rvv/base/overloaded_rv64_vmv.c: Ditto.
+	* gcc.target/riscv/rvv/base/overloaded_rv64_vreinterpret.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr110119-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr110119-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr110265-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr110265-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr110265-3.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr110277-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr110277-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr110299-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr110299-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr110299-3.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr110299-4.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr111720-0.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr111720-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr111720-10.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr111720-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr111720-3.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr111720-4.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr111720-5.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr111720-6.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr111720-7.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr111720-8.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr111720-9.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr111935.c: Ditto.
+	* gcc.target/riscv/rvv/base/scalar-move-merged-run-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/simplify-vdiv.c: Ditto.
+	* gcc.target/riscv/rvv/base/simplify-vrsub.c: Ditto.
+	* gcc.target/riscv/rvv/base/tuple-intrinsic.c: Ditto.
+	* gcc.target/riscv/rvv/base/tuple_vundefined.c: Ditto.
+	* gcc.target/riscv/rvv/base/vcreate.c: Ditto.
+	* gcc.target/riscv/rvv/base/vlmul_ext-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/vslide1down-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/vslide1down-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/vslide1down-3.c: Ditto.
+	* gcc.target/riscv/rvv/base/vslide1up-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/vslide1up-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/vslide1up-3.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvbb-intrinsic.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvbb_vandn_vx_constraint.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvbc-intrinsic.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvfhmin-intrinsic.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvkg-intrinsic.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvkned-intrinsic.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvknha-intrinsic.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvknhb-intrinsic.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvksed-intrinsic.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvksh-intrinsic.c: Ditto.
+
+2024-01-16  Yanzhang Wang  <yanzhang.wang@intel.com>
+
+	* gcc.target/riscv/rvv/base/binop_vx_constraint-120.c: Delete the -Wno-psabi.
+	* gcc.target/riscv/rvv/base/integer_compare_insn_shortcut.c: Ditto.
+	* gcc.target/riscv/rvv/base/mask_insn_shortcut.c: Ditto.
+	* gcc.target/riscv/rvv/base/misc_vreinterpret_vbool_vint.c: Ditto.
+	* gcc.target/riscv/rvv/base/pr110109-2.c: Ditto.
+	* gcc.target/riscv/rvv/base/scalar_move-9.c: Ditto.
+	* gcc.target/riscv/rvv/base/spill-10.c: Ditto.
+	* gcc.target/riscv/rvv/base/spill-11.c: Ditto.
+	* gcc.target/riscv/rvv/base/spill-9.c: Ditto.
+	* gcc.target/riscv/rvv/base/vlmul_ext-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/zero_base_load_store_optimization.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvfh-intrinsic.c: Ditto.
+	* gcc.target/riscv/rvv/base/zvfh-over-zvfhmin.c: Ditto.
+	* gcc.target/riscv/rvv/vsetvl/vsetvl-1.c: Ditto.
+	* gcc.target/riscv/rvv/base/vector-abi-1.c: Removed.
+	* gcc.target/riscv/rvv/base/vector-abi-2.c: Removed.
+	* gcc.target/riscv/rvv/base/vector-abi-3.c: Removed.
+	* gcc.target/riscv/rvv/base/vector-abi-4.c: Removed.
+	* gcc.target/riscv/rvv/base/vector-abi-5.c: Removed.
+	* gcc.target/riscv/rvv/base/vector-abi-6.c: Removed.
+	* gcc.target/riscv/rvv/base/vector-abi-7.c: Removed.
+	* gcc.target/riscv/rvv/base/vector-abi-8.c: Removed.
+
 2024-01-16  David Malcolm  <dmalcolm@redhat.com>
 
 	PR analyzer/106229
diff --git a/libgrust/ChangeLog b/libgrust/ChangeLog
index fa9e2104031..06974682ae7 100644
--- a/libgrust/ChangeLog
+++ b/libgrust/ChangeLog
@@ -1,3 +1,679 @@
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro_internal/proc_macro.h (enum ProcmacroTag): Add
+	explicit value for proc macro tag enum.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/bridge.rs: Add license text.
+	* libproc_macro/bridge/ffistring.rs: Likewise.
+	* libproc_macro/bridge/group.rs: Likewise.
+	* libproc_macro/bridge/ident.rs: Likewise.
+	* libproc_macro/bridge/literal.rs: Likewise.
+	* libproc_macro/bridge/punct.rs: Likewise.
+	* libproc_macro/bridge/span.rs: Likewise.
+	* libproc_macro/bridge/token_stream.rs: Likewise.
+	* libproc_macro/group.rs: Likewise.
+	* libproc_macro/ident.rs: Likewise.
+	* libproc_macro/lib.rs: Likewise.
+	* libproc_macro/literal.rs: Likewise.
+	* libproc_macro/punct.rs: Likewise.
+	* libproc_macro/span.rs: Likewise.
+	* libproc_macro/token_stream.rs: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro_internal/rust/bridge.rs: Moved to...
+	* libproc_macro/bridge.rs: ...here.
+	* libproc_macro_internal/rust/bridge/ffistring.rs: Moved to...
+	* libproc_macro/bridge/ffistring.rs: ...here.
+	* libproc_macro_internal/rust/bridge/group.rs: Moved to...
+	* libproc_macro/bridge/group.rs: ...here.
+	* libproc_macro_internal/rust/bridge/ident.rs: Moved to...
+	* libproc_macro/bridge/ident.rs: ...here.
+	* libproc_macro_internal/rust/bridge/literal.rs: Moved to...
+	* libproc_macro/bridge/literal.rs: ...here.
+	* libproc_macro_internal/rust/bridge/punct.rs: Moved to...
+	* libproc_macro/bridge/punct.rs: ...here.
+	* libproc_macro_internal/rust/bridge/span.rs: Moved to...
+	* libproc_macro/bridge/span.rs: ...here.
+	* libproc_macro_internal/rust/bridge/token_stream.rs: Moved to...
+	* libproc_macro/bridge/token_stream.rs: ...here.
+	* libproc_macro_internal/rust/group.rs: Moved to...
+	* libproc_macro/group.rs: ...here.
+	* libproc_macro_internal/rust/ident.rs: Moved to...
+	* libproc_macro/ident.rs: ...here.
+	* libproc_macro_internal/rust/lib.rs: Moved to...
+	* libproc_macro/lib.rs: ...here.
+	* libproc_macro_internal/rust/literal.rs: Moved to...
+	* libproc_macro/literal.rs: ...here.
+	* libproc_macro_internal/rust/punct.rs: Moved to...
+	* libproc_macro/punct.rs: ...here.
+	* libproc_macro_internal/rust/span.rs: Moved to...
+	* libproc_macro/span.rs: ...here.
+	* libproc_macro_internal/rust/token_stream.rs: Moved to...
+	* libproc_macro/token_stream.rs: ...here.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Makefile.am: Change library name.
+	* Makefile.in: Likewise.
+	* configure.ac: Likewise.
+	* configure: Regenerate.
+	* libproc_macro/Makefile.am: Moved to...
+	* libproc_macro_internal/Makefile.am: ...here.
+	* libproc_macro/Makefile.in: Moved to...
+	* libproc_macro_internal/Makefile.in: ...here.
+	* libproc_macro/bridge.h: Moved to...
+	* libproc_macro_internal/bridge.h: ...here.
+	* libproc_macro/ffistring.cc: Moved to...
+	* libproc_macro_internal/ffistring.cc: ...here.
+	* libproc_macro/ffistring.h: Moved to...
+	* libproc_macro_internal/ffistring.h: ...here.
+	* libproc_macro/group.cc: Moved to...
+	* libproc_macro_internal/group.cc: ...here.
+	* libproc_macro/group.h: Moved to...
+	* libproc_macro_internal/group.h: ...here.
+	* libproc_macro/ident.cc: Moved to...
+	* libproc_macro_internal/ident.cc: ...here.
+	* libproc_macro/ident.h: Moved to...
+	* libproc_macro_internal/ident.h: ...here.
+	* libproc_macro/literal.cc: Moved to...
+	* libproc_macro_internal/literal.cc: ...here.
+	* libproc_macro/literal.h: Moved to...
+	* libproc_macro_internal/literal.h: ...here.
+	* libproc_macro/proc_macro.cc: Moved to...
+	* libproc_macro_internal/proc_macro.cc: ...here.
+	* libproc_macro/proc_macro.h: Moved to...
+	* libproc_macro_internal/proc_macro.h: ...here.
+	* libproc_macro/punct.cc: Moved to...
+	* libproc_macro_internal/punct.cc: ...here.
+	* libproc_macro/punct.h: Moved to...
+	* libproc_macro_internal/punct.h: ...here.
+	* libproc_macro/registration.h: Moved to...
+	* libproc_macro_internal/registration.h: ...here.
+	* libproc_macro/rust/bridge.rs: Moved to...
+	* libproc_macro_internal/rust/bridge.rs: ...here.
+	* libproc_macro/rust/bridge/ffistring.rs: Moved to...
+	* libproc_macro_internal/rust/bridge/ffistring.rs: ...here.
+	* libproc_macro/rust/bridge/group.rs: Moved to...
+	* libproc_macro_internal/rust/bridge/group.rs: ...here.
+	* libproc_macro/rust/bridge/ident.rs: Moved to...
+	* libproc_macro_internal/rust/bridge/ident.rs: ...here.
+	* libproc_macro/rust/bridge/literal.rs: Moved to...
+	* libproc_macro_internal/rust/bridge/literal.rs: ...here.
+	* libproc_macro/rust/bridge/punct.rs: Moved to...
+	* libproc_macro_internal/rust/bridge/punct.rs: ...here.
+	* libproc_macro/rust/bridge/span.rs: Moved to...
+	* libproc_macro_internal/rust/bridge/span.rs: ...here.
+	* libproc_macro/rust/bridge/token_stream.rs: Moved to...
+	* libproc_macro_internal/rust/bridge/token_stream.rs: ...here.
+	* libproc_macro/rust/group.rs: Moved to...
+	* libproc_macro_internal/rust/group.rs: ...here.
+	* libproc_macro/rust/ident.rs: Moved to...
+	* libproc_macro_internal/rust/ident.rs: ...here.
+	* libproc_macro/rust/lib.rs: Moved to...
+	* libproc_macro_internal/rust/lib.rs: ...here.
+	* libproc_macro/rust/literal.rs: Moved to...
+	* libproc_macro_internal/rust/literal.rs: ...here.
+	* libproc_macro/rust/punct.rs: Moved to...
+	* libproc_macro_internal/rust/punct.rs: ...here.
+	* libproc_macro/rust/span.rs: Moved to...
+	* libproc_macro_internal/rust/span.rs: ...here.
+	* libproc_macro/rust/token_stream.rs: Moved to...
+	* libproc_macro_internal/rust/token_stream.rs: ...here.
+	* libproc_macro/span.cc: Moved to...
+	* libproc_macro_internal/span.cc: ...here.
+	* libproc_macro/span.h: Moved to...
+	* libproc_macro_internal/span.h: ...here.
+	* libproc_macro/tokenstream.cc: Moved to...
+	* libproc_macro_internal/tokenstream.cc: ...here.
+	* libproc_macro/tokenstream.h: Moved to...
+	* libproc_macro_internal/tokenstream.h: ...here.
+	* libproc_macro/tokentree.cc: Moved to...
+	* libproc_macro_internal/tokentree.cc: ...here.
+	* libproc_macro/tokentree.h: Moved to...
+	* libproc_macro_internal/tokentree.h: ...here.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/literal.cc (Literal__from_string): Add
+	implementation with call to constructor.
+	(Literal::make_literal): Add new constructor which calls the
+	callback.
+	* libproc_macro/literal.h: Add new constructor's
+	prototype.
+	* libproc_macro/proc_macro.cc (bridge_is_available):
+	Change symbol name to match convention.
+	* libproc_macro/registration.h: Add lit_from_str
+	symbol.
+	* libproc_macro/tokenstream.cc (TokenStream::make_tokenstream):
+	Change symbol name to disambiguate with literal from string.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.cc: Remove type alias.
+	* libproc_macro/registration.h: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.h (proc_macro_register_from_str):
+	Remove rogue function prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.cc (not_available): Remove
+	function.
+	* libproc_macro/proc_macro.h (not_available): Remove
+	function prototype.
+	* libproc_macro/registration.h: Change symbol type.
+	* libproc_macro/bridge.h: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.cc (bridge_is_available):
+	Add bridge function.
+	* libproc_macro/proc_macro.h (bridge_is_available):
+	Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.cc (not_available): Add a
+	function to express bridge unavailability.
+	* libproc_macro/proc_macro.h (not_available): Likewise.
+	* libproc_macro/registration.h: Add symbol type.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.cc (Procmacro::make_bang):
+	Change symbol name.
+	* libproc_macro/registration.h: Likewise.
+	* libproc_macro/tokenstream.cc (TokenStream::make_tokenstream): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/literal.cc (Literal__from_string):
+	Update to match rust interface.
+	* libproc_macro/literal.h (Literal__from_string):
+	Likewise.
+	* libproc_macro/tokenstream.cc (TokenStream__from_string):
+	Likewise.
+	* libproc_macro/tokenstream.h (TokenStream__from_string):
+	Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/rust/bridge/literal.rs: Change extern C
+	function argument from raw string pointer and length to
+	FFIString.
+	* libproc_macro/rust/bridge/token_stream.rs: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/rust/bridge/ident.rs: Change raw
+	pointer string with an FFIString.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/ident.cc (Ident__new): Constructor
+	accepts an FFIString now.
+	(Ident__new_raw): Likewise.
+	(Ident::clone): Internal members change means clone also change.
+	(Ident::make_ident): Change constructor call.
+	(Ident::drop): Add call to FFIString::clone.
+	* libproc_macro/ident.h (struct Ident): Remove raw
+	pointer and length, add an FFIString inside instead.
+	(Ident__new): Change constructor.
+	(Ident__new_raw): Change constructor.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.cc (proc_macro_register_from_str):
+	Add registration function.
+	* libproc_macro/proc_macro.h (proc_macro_register_from_str):
+	Add registration function prototype.
+	* libproc_macro/tokenstream.cc (TokenStream::make_tokenstream):
+	Add a new constructor from a string that uses the registered
+	callback.
+	(TokenStream__from_string): Add call to new constructor.
+	* libproc_macro/tokenstream.h: Add registration
+	declaration.
+	* libproc_macro/registration.h: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/ffistring.cc (FFIString::make_ffistring):
+	Add explicit sizeof and utf-8 warning.
+	(FFIString::clone): Add explicit sizeof and utf-8 warning.
+	* libproc_macro/ident.cc (Ident::clone): Likewise.
+	(Ident::make_ident): Likewise.
+	* libproc_macro/tokenstream.cc (TokenStream::grow):
+	Fix vector growth.
+	(TokenStream__clone): Add explicit sizeof.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/tokenstream.cc (TokenStream::grow): Add
+	minimum growing capacity.
+	(TokenStream::push): Change condition.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.h (struct CustomDerivePayload):
+	Rename from CustomDerivePayload to...
+	(struct CustomDerive): ... CustomDerive
+	(struct AttrPayload): Rename from AttrPayload to ...
+	(struct Attribute): ... Attribute
+	(struct BangPayload): Rename from BangPayload to ...
+	(struct Bang): ... Bang
+	(union ProcmacroPayload): Update union with new names.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.h (struct ProcmacroArray):
+	Add ProcmacroArray definition.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/Makefile.am: Add span.cc
+	* libproc_macro/Makefile.in: Regenerate.
+	* libproc_macro/span.cc: New file.
+	* libproc_macro/span.h: New file.
+	* libproc_macro/group.cc (Group::make_group): Add span
+	argument.
+	* libproc_macro/group.h (GROUP_H): Add include
+	directive for spans.
+	* libproc_macro/ident.cc (Ident__new): Add span
+	argument.
+	(Ident__new_raw): Likewise.
+	(Ident::make_ident): Likewise.
+	* libproc_macro/ident.h (Ident__new): Likewise.
+	(Ident__new_raw): Likewise.
+	* libproc_macro/literal.cc (Literal::clone): Clone the
+	span.
+	(Literal::make_literal): Add span argument.
+	(Literal::make_u8): Likewise.
+	(Literal::make_u16): Likewise.
+	(Literal::make_u32): Likewise.
+	(Literal::make_u64): Likewise.
+	(Literal::make_i8): Likewise.
+	(Literal::make_i16): Likewise.
+	(Literal::make_i32): Likewise.
+	(Literal::make_i64): Likewise.
+	(Literal::make_string): Likewise.
+	(Literal::make_byte_string): Likewise.
+	(Literal::make_f32): Likewise.
+	(Literal::make_f64): Likewise.
+	(Literal::make_char): Likewise.
+	(Literal::make_usize): Likewise.
+	(Literal::make_isize): Likewise.
+	* libproc_macro/literal.h (struct Literal): Add span to
+	Literal structure.
+	* libproc_macro/punct.cc (Punct::make_punct): Add span
+	argument to punct constructor.
+	* libproc_macro/punct.h (struct Punct): Add span to
+	Punct structure.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/rust/bridge/group.rs: Add span member
+	to the Group structure.
+	* libproc_macro/rust/bridge/ident.rs: Likewise with the
+	Ident structure.
+	* libproc_macro/rust/bridge/literal.rs: Likewise with
+	the Literal structure.
+	* libproc_macro/rust/bridge/punct.rs: Likewise with the
+	Punct structure.
+	* libproc_macro/rust/bridge/span.rs: Add span
+	internals.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/rust/bridge/ffistring.rs: Implement
+	From trait for FFIString.
+	* libproc_macro/rust/bridge/literal.rs: Change
+	constructor call.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/ffistring.cc (FFIString::make_ffistring):
+	Add copy from source pointer.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/literal.h: Remove has_suffix member
+	attribute from Literal.
+	* libproc_macro/literal.cc: Update constructors.
+	* libproc_macro/rust/bridge/literal.rs: Remove
+	has_suffix attribute from Literal.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/Makefile.am: Add ffistring unit to
+	compiled objects list.
+	* libproc_macro/Makefile.in: Regenerate.
+	* libproc_macro/literal.cc (Literal::drop): Change with
+	a call to ffistring drop function.
+	(Literal::make_literal): Add new helper constructor
+	(Literal__drop): Remove this function.
+	(Literal__string): Likewise.
+	(Literal__byte_string): Likewise.
+	(Literal__from_string): Moved this function.
+	(Literal::make_unsigned): Changed the constructor to match the
+	new layout.
+	(Literal::make_signed): Likewise.
+	(Literal::clone): Reimplement th eclone function.
+	(Literal::make_u8): Changed the constructor, make suffixed by
+	default.
+	(Literal::make_u16): Likewise.
+	(Literal::make_u32): Likewise.
+	(Literal::make_u64): Likewise.
+	(Literal::make_i8): Likewise.
+	(Literal::make_i16): Likewise.
+	(Literal::make_i32): Likewise.
+	(Literal::make_i64): Likewise.
+	(Literal::make_string): Likewise.
+	(Literal::make_byte_string): Likewise.
+	(Literal::make_f32): Likewise.
+	(Literal::make_f64): Likewise.
+	(Literal::make_char): Likewise.
+	(Literal::make_usize): Likewise.
+	(Literal::make_isize): Likewise.
+	(LitKind::make_byte): Add new helper constructor to avoid having
+	to set the payload value.
+	(LitKind::make_char): Likewise.
+	(LitKind::make_integer): Likewise.
+	(LitKind::make_float): Likewise.
+	(LitKind::make_str): Likewise.
+	(LitKind::make_str_raw): Add a new helper constructor which
+	takes the payload value as an argument.
+	(LitKind::make_byte_str): Add new helper constructor to avoid
+	mistakes with payload value.
+	(LitKind::make_byte_str_raw): Add a new helper constructor which
+	takes the payload value as an argument.
+	* libproc_macro/literal.h: Add new functions prototype.
+	(enum UnsignedTag): Removed because it is now unused.
+	(struct Payload128): Likewise.
+	(union UnsignedPayload): Likewise.
+	(struct Unsigned): Likewise.
+	(enum SignedTag): Likewise.
+	(union SignedPayload): Likewise.
+	(struct Signed): Likewise.
+	(enum LiteralTag): Likewise.
+	(enum LitKindTag): Likewise.
+	(struct StringPayload): Likewise.
+	(struct ByteStringPayload): Likewise.
+	(union LitKindPayload): Likewise.
+	(struct UnsignedSuffixPayload): Likewise.
+	(struct LitKind): Add new literal kind struct representation to
+	match the enum on rust side.
+	(struct SignedSuffixPayload): Removed because now unused.
+	(struct UsizePayload): Likewise.
+	(struct IsizePayload): Likewise.
+	(struct Float32Payload): Likewise.
+	(struct Float64Payload): Likewise.
+	(union LiteralPayload): Likewise.
+	(struct Literal): Changed the internals of the structure.
+	(Literal__drop): Removed the drop function fom the c interface.
+	(Literal__string): Removed unused function.
+	(Literal__byte_string): Removed unused function.
+	* libproc_macro/ffistring.cc: New file.
+	* libproc_macro/ffistring.h: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/rust/bridge.rs: Add ffistring module.
+	* libproc_macro/rust/bridge/literal.rs: Rework type
+	internals.
+	* libproc_macro/rust/bridge/ffistring.rs: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.cc (Procmacro::make_derive):
+	Add custom derive macro constructor.
+	(Procmacro::make_attribute): Add attribute macro constructor.
+	(Procmacro::make_bang): Add bang macro constructor.
+	* libproc_macro/proc_macro.h (struct Procmacro):
+	Add helper function prototypes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.h (struct CustomDerivePayload):
+	Add C compatible payload structure.
+	(struct AttrPayload): Likewise.
+	(struct BangPayload): Likewise.
+	(enum ProcmacroTag): Add tag for tagged union.
+	(union ProcmacroPayload): Proc macro payload union.
+	(struct Procmacro): Tagged union.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.h: Add Literal, Punct,
+	Group, TokenTree and Tokenstream headers.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* Makefile.am: Remove libtool forwarding.
+	* Makefile.in: Regenerate.
+	* libproc_macro/Makefile.am: Creates an archive instead
+	of using libtool.
+	* libproc_macro/Makefile.in: Regenerate.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/group.cc (Group::make_group): Remove
+	internal namespace.
+	(Group::drop): Likewise.
+	* libproc_macro/group.h (enum Delimiter): Make members
+	upercase.
+	(struct Group):
+	* libproc_macro/ident.cc (Ident::drop): Remove internal
+	namespace.
+	* libproc_macro/ident.h (Ident__clone): Likewise.
+	* libproc_macro/literal.cc (Literal::make_isize):
+	Likewise.
+	* libproc_macro/literal.h (union LiteralPayload):
+	Likewise.
+	(Literal__from_string): Likewise.
+	* libproc_macro/punct.cc (Punct::make_punct): Likewise.
+	* libproc_macro/punct.h (enum Spacing): Make members
+	uppercase.
+	* libproc_macro/tokenstream.cc (TokenStream::make_tokenstream):
+	Remove internal namespace.
+	(TokenStream::grow): Likewise.
+	(TokenStream::push): Likewise.
+	(TokenSream__push): Likewise.
+	(TokenStream__clone): Likewise.
+	(TokenStream__drop): Likewise.
+	* libproc_macro/tokenstream.h (struct TokenStream):
+	Likewise.
+	(TokenSream__push): Likewise.
+	(TokenStream__drop): Likewise.
+	* libproc_macro/tokentree.cc (TokenTree::make_tokentree):
+	Likewise.
+	(TokenTree::drop): Likewise.
+	* libproc_macro/tokentree.h (union TokenTreePayload):
+	Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/group.cc (Group::drop): Add Procmacro
+	namespace.
+	* libproc_macro/group.h: Likewise.
+	* libproc_macro/ident.cc (Ident::drop): Likewise.
+	* libproc_macro/ident.h (Ident__clone): Likewise.
+	* libproc_macro/literal.cc (Literal::make_isize):
+	Likewise.
+	* libproc_macro/literal.h (Literal__from_string):
+	Likewise.
+	* libproc_macro/punct.cc (Punct::make_punct): Likewise.
+	* libproc_macro/punct.h: Likewise.
+	* libproc_macro/tokenstream.cc (TokenStream__drop):
+	Likewise.
+	* libproc_macro/tokenstream.h (TokenStream__drop):
+	Likewise.
+	* libproc_macro/tokentree.cc (TokenTree::drop):
+	Likewise.
+	* libproc_macro/tokentree.h: Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/literal.cc (Literal::drop): Change
+	delete operator to delete[].
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/rust/bridge/token_stream.rs: Implement
+	drop.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/group.cc (Group::drop): Add drop
+	implementation.
+	* libproc_macro/group.h: Add drop prototype.
+	* libproc_macro/tokenstream.cc (TokenStream::drop): Add
+	drop implementation.
+	(TokenStream__drop): Change to a call to TokenStream::drop.
+	* libproc_macro/tokenstream.h: Add drop prototype.
+	* libproc_macro/tokentree.cc (TokenTree::drop): Add
+	drop implementation.
+	* libproc_macro/tokentree.h: Add drop prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/literal.cc (Literal__drop): Replace
+	implementation by a call to Literal::drop.
+	(Literal::drop): Add drop implementation.
+	* libproc_macro/literal.h: Add function prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/ident.cc (Ident__drop): Replace by call
+	to Ident::drop.
+	(Ident::drop): Add drop function.
+	* libproc_macro/ident.h: Add drop prototype.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/group.cc: New file.
+	* libproc_macro/group.h: New file.
+	* libproc_macro/tokenstream.cc: New file.
+	* libproc_macro/tokenstream.h: New file.
+	* libproc_macro/tokentree.cc: New file.
+	* libproc_macro/tokentree.h: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/punct.cc: New file.
+	* libproc_macro/punct.h: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/ident.cc (Ident::make_ident): Add Ident
+	namespace.
+	* libproc_macro/ident.h (Ident__clone): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/ident.cc (Ident__new): Use named
+	constructor.
+	(Ident__new_raw): Use named constructor.
+	(Ident__clone): Use clone member function.
+	(Ident::clone): Make clone const.
+	(Ident::make_ident): Add named construcot.
+	* libproc_macro/ident.h (struct Ident): Add named
+	constructor prototypes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/rust/bridge/ident.rs: Change drop
+	function interface.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/ident.cc: New file.
+	* libproc_macro/ident.h: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/literal.cc (Literal__string): Add call
+	to named constructor.
+	(Literal__byte_string): Likewise.
+	(Literal::make_unsigned): Add function.
+	(Literal::make_signed): Add function.
+	(Literal::clone): Likewise.
+	(Literal::make_u8): Likewise.
+	(Literal::make_u16): Likewise.
+	(Literal::make_u32): Likewise.
+	(Literal::make_u64): Likewise.
+	(Literal::make_i8): Likewise.
+	(Literal::make_i16): Likewise.
+	(Literal::make_i32): Likewise.
+	(Literal::make_i64): Likewise.
+	(Literal::make_string): Likewise.
+	(Literal::make_byte_string): Likewise.
+	(Literal::make_f32): Likewise.
+	(Literal::make_f64): Likewise.
+	(make_char): Likewise.
+	(Literal::make_char): Likewise.
+	(make_usize): Likewise.
+	(Literal::make_usize): Likewise.
+	(make_isize): Likewise.
+	(Literal::make_isize): Likewise.
+	* libproc_macro/literal.h: Add prototypes.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/literal.cc (Literal__from_string):
+	Add abort because unimplemented.
+	* libproc_macro/literal.h (Literal__from_string): Add
+	namespace.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/rust/bridge/literal.rs: Make the
+	pointer mutable.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/literal.h (Literal__drop): Implement
+	drop.
+	(Literal__string): Constructor from a string function prototype.
+	(Literal__byte_string): Constructor from a byte string function
+	prototype.
+	(Literal__from_string): Add function body, no implementation
+	yet.
+	* libproc_macro/literal.cc: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.h (PROC_MACRO_H): Add
+	literal header include directive.
+	* libproc_macro/literal.h: New file.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/proc_macro.cc (test): Remove dummy
+	function.
+	* libproc_macro/proc_macro.h (test): Likewise.
+
+2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+
+	* libproc_macro/rust/bridge.rs: New file.
+	* libproc_macro/rust/bridge/group.rs: New file.
+	* libproc_macro/rust/bridge/ident.rs: New file.
+	* libproc_macro/rust/bridge/literal.rs: New file.
+	* libproc_macro/rust/bridge/punct.rs: New file.
+	* libproc_macro/rust/bridge/span.rs: New file.
+	* libproc_macro/rust/bridge/token_stream.rs: New file.
+	* libproc_macro/rust/group.rs: New file.
+	* libproc_macro/rust/ident.rs: New file.
+	* libproc_macro/rust/lib.rs: New file.
+	* libproc_macro/rust/literal.rs: New file.
+	* libproc_macro/rust/punct.rs: New file.
+	* libproc_macro/rust/span.rs: New file.
+	* libproc_macro/rust/token_stream.rs: New file.
+
 2024-01-08  Thomas Schwinge  <thomas@codesourcery.com>
 
 	PR rust/113056


More information about the Gcc-cvs mailing list