public inbox for gcc-rust@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCHSET] Update Rust frontend 21/02/2024
@ 2024-02-21 13:15 arthur.cohen
  2024-02-21 13:15 ` [COMMITTED 1/9] gccrs: Fix typo in RegionConstraints instance arthur.cohen
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: arthur.cohen @ 2024-02-21 13:15 UTC (permalink / raw)
  To: gcc-patches; +Cc: gcc-rust

Hey everyone,

Here is the latest patchset of the Rust frontend, taken directly from our development branch.

The patches have been built, tested and bootstrapped on x86-64.

[COMMITTED 1/9] gccrs: Fix typo in RegionConstraints instance
[COMMITTED 2/9] gccrs: Add testcase for matches!() macro
[COMMITTED 3/9] gccrs: Fix rebinding imports
[COMMITTED 4/9] gccrs: expand: Fix formatting for "macro not found"
[COMMITTED 5/9] gccrs: Add testcase for #[rustc_const_stable]
[COMMITTED 6/9] gccrs: add powi intrinsics
[COMMITTED 7/9] gccrs: Fix lookup of TuplePattern sub-pattern types
[COMMITTED 8/9] gccrs: Add variadic check on function params
[COMMITTED 9/9] Update copyright years.

Best,

Arthur


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [COMMITTED 1/9] gccrs: Fix typo in RegionConstraints instance
  2024-02-21 13:15 [PATCHSET] Update Rust frontend 21/02/2024 arthur.cohen
@ 2024-02-21 13:15 ` arthur.cohen
  2024-02-21 13:15 ` [COMMITTED 2/9] gccrs: Add testcase for matches!() macro arthur.cohen
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: arthur.cohen @ 2024-02-21 13:15 UTC (permalink / raw)
  To: gcc-patches; +Cc: gcc-rust, Arthur Cohen

From: Arthur Cohen <arthur.cohen@embecosm.com>

gcc/rust/ChangeLog:

	* typecheck/rust-hir-type-check-implitem.h: Fix typo in field
	(region_costraints -> region_constraints).
---
 gcc/rust/typecheck/rust-hir-type-check-implitem.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/rust/typecheck/rust-hir-type-check-implitem.h b/gcc/rust/typecheck/rust-hir-type-check-implitem.h
index 4d178440775..541b7280c1b 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-implitem.h
+++ b/gcc/rust/typecheck/rust-hir-type-check-implitem.h
@@ -97,7 +97,7 @@ private:
   HIR::ImplBlock *parent;
   TyTy::BaseType *self;
   std::vector<TyTy::SubstitutionParamMapping> substitutions;
-  TyTy::RegionConstraints region_costraints;
+  TyTy::RegionConstraints region_constraints;
 };
 
 } // namespace Resolver
-- 
2.42.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [COMMITTED 2/9] gccrs: Add testcase for matches!() macro
  2024-02-21 13:15 [PATCHSET] Update Rust frontend 21/02/2024 arthur.cohen
  2024-02-21 13:15 ` [COMMITTED 1/9] gccrs: Fix typo in RegionConstraints instance arthur.cohen
@ 2024-02-21 13:15 ` arthur.cohen
  2024-02-21 13:15 ` [COMMITTED 3/9] gccrs: Fix rebinding imports arthur.cohen
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: arthur.cohen @ 2024-02-21 13:15 UTC (permalink / raw)
  To: gcc-patches; +Cc: gcc-rust, Arthur Cohen

From: Arthur Cohen <arthur.cohen@embecosm.com>

This adds a testcase for issue #2129.

gcc/testsuite/ChangeLog:

	* rust/execute/torture/matches_macro.rs: New test.
---
 .../rust/execute/torture/matches_macro.rs     | 30 +++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 gcc/testsuite/rust/execute/torture/matches_macro.rs

diff --git a/gcc/testsuite/rust/execute/torture/matches_macro.rs b/gcc/testsuite/rust/execute/torture/matches_macro.rs
new file mode 100644
index 00000000000..7b61570727d
--- /dev/null
+++ b/gcc/testsuite/rust/execute/torture/matches_macro.rs
@@ -0,0 +1,30 @@
+macro_rules! matches {
+    ($expression:expr, $($pattern:pat)|+ $( if $guard:expr ),*) => {
+        match $expression {
+            $($pattern)|+ => true,
+            _ => false,
+        }
+    }
+}
+
+pub fn should_match() -> bool {
+    matches!(1, 1)
+}
+
+pub fn shouldnt() -> bool {
+    matches!(1, 2)
+}
+
+fn main() -> i32 {
+    let mut retval = 2;
+
+    if should_match() {
+        retval -= 1;
+    }
+
+    if !shouldnt() {
+        retval -= 1;
+    }
+
+    retval
+}
-- 
2.42.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [COMMITTED 3/9] gccrs: Fix rebinding imports
  2024-02-21 13:15 [PATCHSET] Update Rust frontend 21/02/2024 arthur.cohen
  2024-02-21 13:15 ` [COMMITTED 1/9] gccrs: Fix typo in RegionConstraints instance arthur.cohen
  2024-02-21 13:15 ` [COMMITTED 2/9] gccrs: Add testcase for matches!() macro arthur.cohen
@ 2024-02-21 13:15 ` arthur.cohen
  2024-02-21 13:15 ` [COMMITTED 4/9] gccrs: expand: Fix formatting for "macro not found" error arthur.cohen
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: arthur.cohen @ 2024-02-21 13:15 UTC (permalink / raw)
  To: gcc-patches; +Cc: gcc-rust, Owen Avery

From: Owen Avery <powerboat9.gamer@gmail.com>

gcc/rust/ChangeLog:

	* resolve/rust-ast-resolve-item.cc
	(flatten_glob): Use Import class.
	(flatten_rebind): Likewise.
	(flatten_list): Likewise.
	(flatten): Likewise.
	(flatten_use_dec_to_paths): Likewise.
	(flatten_use_dec_to_imports): Likewise.
	(ResolveItem::visit): Likewise.
	(Import::add_prefix): New.
	(rust_flatten_nested_glob): Adjust test.
	(rust_flatten_glob): Likewise.
	(rust_flatten_rebind_none): Likewise.
	(rust_flatten_rebind): Likewise.
	(rust_flatten_rebind_nested): Likewise.
	(rust_flatten_list): Likewise.
	* resolve/rust-ast-resolve-item.h
	(class Import): New.

gcc/testsuite/ChangeLog:

	* rust/compile/use_2.rs: New test.

Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
---
 gcc/rust/resolve/rust-ast-resolve-item.cc | 179 +++++++++++-----------
 gcc/rust/resolve/rust-ast-resolve-item.h  |  23 +++
 gcc/testsuite/rust/compile/use_2.rs       |   7 +
 3 files changed, 116 insertions(+), 93 deletions(-)
 create mode 100644 gcc/testsuite/rust/compile/use_2.rs

diff --git a/gcc/rust/resolve/rust-ast-resolve-item.cc b/gcc/rust/resolve/rust-ast-resolve-item.cc
index e69b945407c..743657bc421 100644
--- a/gcc/rust/resolve/rust-ast-resolve-item.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-item.cc
@@ -824,33 +824,30 @@ ResolveItem::resolve_extern_item (AST::ExternalItem *item)
 }
 
 static void
-flatten_glob (const AST::UseTreeGlob &glob,
-	      std::vector<AST::SimplePath> &paths);
+flatten_glob (const AST::UseTreeGlob &glob, std::vector<Import> &imports);
 static void
-flatten_rebind (const AST::UseTreeRebind &glob,
-		std::vector<AST::SimplePath> &paths);
+flatten_rebind (const AST::UseTreeRebind &glob, std::vector<Import> &imports);
 static void
-flatten_list (const AST::UseTreeList &glob,
-	      std::vector<AST::SimplePath> &paths);
+flatten_list (const AST::UseTreeList &glob, std::vector<Import> &imports);
 
 static void
-flatten (const AST::UseTree *tree, std::vector<AST::SimplePath> &paths)
+flatten (const AST::UseTree *tree, std::vector<Import> &imports)
 {
   switch (tree->get_kind ())
     {
       case AST::UseTree::Glob: {
 	auto glob = static_cast<const AST::UseTreeGlob *> (tree);
-	flatten_glob (*glob, paths);
+	flatten_glob (*glob, imports);
 	break;
       }
       case AST::UseTree::Rebind: {
 	auto rebind = static_cast<const AST::UseTreeRebind *> (tree);
-	flatten_rebind (*rebind, paths);
+	flatten_rebind (*rebind, imports);
 	break;
       }
       case AST::UseTree::List: {
 	auto list = static_cast<const AST::UseTreeList *> (tree);
-	flatten_list (*list, paths);
+	flatten_list (*list, imports);
 	break;
       }
       break;
@@ -858,36 +855,28 @@ flatten (const AST::UseTree *tree, std::vector<AST::SimplePath> &paths)
 }
 
 static void
-flatten_glob (const AST::UseTreeGlob &glob, std::vector<AST::SimplePath> &paths)
+flatten_glob (const AST::UseTreeGlob &glob, std::vector<Import> &imports)
 {
   if (glob.has_path ())
-    paths.emplace_back (glob.get_path ());
+    imports.emplace_back (glob.get_path (), true, std::string ());
 }
 
 static void
-flatten_rebind (const AST::UseTreeRebind &rebind,
-		std::vector<AST::SimplePath> &paths)
+flatten_rebind (const AST::UseTreeRebind &rebind, std::vector<Import> &imports)
 {
   auto path = rebind.get_path ();
-  if (rebind.has_path ())
-    paths.emplace_back (path);
 
-  // FIXME: Do we want to emplace the rebind here as well?
+  std::string label;
   if (rebind.has_identifier ())
-    {
-      auto rebind_path = path;
-      auto new_seg = rebind.get_identifier ();
-
-      // Add the identifier as a new path
-      rebind_path.get_segments ().back ()
-	= AST::SimplePathSegment (new_seg.as_string (), UNDEF_LOCATION);
+    label = rebind.get_identifier ().as_string ();
+  else
+    label = path.get_final_segment ().as_string ();
 
-      paths.emplace_back (rebind_path);
-    }
+  imports.emplace_back (path, false, label);
 }
 
 static void
-flatten_list (const AST::UseTreeList &list, std::vector<AST::SimplePath> &paths)
+flatten_list (const AST::UseTreeList &list, std::vector<Import> &imports)
 {
   auto prefix = AST::SimplePath::create_empty ();
   if (list.has_path ())
@@ -895,21 +884,25 @@ flatten_list (const AST::UseTreeList &list, std::vector<AST::SimplePath> &paths)
 
   for (const auto &tree : list.get_trees ())
     {
-      auto sub_paths = std::vector<AST::SimplePath> ();
-      flatten (tree.get (), sub_paths);
+      // append imports to the main list, then modify them in-place
+      auto start_idx = imports.size ();
+      flatten (tree.get (), imports);
 
-      for (auto &sub_path : sub_paths)
-	{
-	  auto new_path = prefix;
-	  std::copy (sub_path.get_segments ().begin (),
-		     sub_path.get_segments ().end (),
-		     std::back_inserter (new_path.get_segments ()));
-
-	  paths.emplace_back (new_path);
-	}
+      for (auto import = imports.begin () + start_idx; import != imports.end ();
+	   import++)
+	import->add_prefix (prefix);
     }
 }
 
+void
+Import::add_prefix (AST::SimplePath prefix)
+{
+  AST::SimplePath old_path (std::move (path));
+  path = std::move (prefix);
+  std::move (old_path.get_segments ().begin (), old_path.get_segments ().end (),
+	     std::back_inserter (path.get_segments ()));
+}
+
 /**
  * Flatten a UseDeclaration's UseTree into multiple simple paths to resolve.
  *
@@ -930,21 +923,21 @@ flatten_list (const AST::UseTreeList &list, std::vector<AST::SimplePath> &paths)
  * Finally in the third case, we want to create two SimplePaths to resolve:
  * [some::path::one, some::path::two]
  */
-static std::vector<AST::SimplePath>
-flatten_use_dec_to_paths (const AST::UseDeclaration &use_item)
+static std::vector<Import>
+flatten_use_dec_to_imports (const AST::UseDeclaration &use_item)
 {
-  auto paths = std::vector<AST::SimplePath> ();
+  auto imports = std::vector<Import> ();
 
   const auto &tree = use_item.get_tree ();
-  flatten (tree.get (), paths);
+  flatten (tree.get (), imports);
 
-  return paths;
+  return imports;
 }
 
 void
 ResolveItem::visit (AST::UseDeclaration &use_item)
 {
-  std::vector<AST::SimplePath> to_resolve = flatten_use_dec_to_paths (use_item);
+  std::vector<Import> to_resolve = flatten_use_dec_to_imports (use_item);
 
   // FIXME: I think this does not actually resolve glob use-decls and is going
   // the wrong way about it. RFC #1560 specifies the following:
@@ -956,18 +949,20 @@ ResolveItem::visit (AST::UseDeclaration &use_item)
   // Which is the opposite of what we're doing if I understand correctly?
 
   NodeId current_module = resolver->peek_current_module_scope ();
-  for (auto &path : to_resolve)
+  for (auto &import : to_resolve)
     {
+      auto &path = import.get_path ();
+
       rust_debug ("resolving use-decl path: [%s]", path.as_string ().c_str ());
       NodeId resolved_node_id = ResolvePath::go (&path);
       bool ok = resolved_node_id != UNKNOWN_NODEID;
       if (!ok)
 	continue;
 
-      const AST::SimplePathSegment &final_seg = path.get_segments ().back ();
+      if (import.is_glob ())
+	continue;
 
-      auto decl
-	= CanonicalPath::new_seg (resolved_node_id, final_seg.as_string ());
+      auto decl = CanonicalPath::new_seg (resolved_node_id, import.get_name ());
       mappings->insert_module_child_item (current_module, decl);
 
       resolver->get_type_scope ().insert (decl, resolved_node_id,
@@ -1079,13 +1074,13 @@ rust_flatten_nested_glob (void)
     = Rust::AST::UseTreeGlob (Rust::AST::UseTreeGlob::PathType::PATH_PREFIXED,
 			      foobar, UNDEF_LOCATION);
 
-  auto paths = std::vector<Rust::AST::SimplePath> ();
-  Rust::Resolver::flatten_glob (glob, paths);
+  auto imports = std::vector<Rust::Resolver::Import> ();
+  Rust::Resolver::flatten_glob (glob, imports);
 
-  ASSERT_TRUE (!paths.empty ());
-  ASSERT_EQ (paths.size (), 1);
-  ASSERT_EQ (paths[0].get_segments ()[0].as_string (), "foo");
-  ASSERT_EQ (paths[0].get_segments ()[1].as_string (), "bar");
+  ASSERT_TRUE (!imports.empty ());
+  ASSERT_EQ (imports.size (), 1);
+  ASSERT_EQ (imports[0].get_path ().get_segments ()[0].as_string (), "foo");
+  ASSERT_EQ (imports[0].get_path ().get_segments ()[1].as_string (), "bar");
 }
 
 static void
@@ -1097,12 +1092,12 @@ rust_flatten_glob (void)
     = Rust::AST::UseTreeGlob (Rust::AST::UseTreeGlob::PathType::PATH_PREFIXED,
 			      frob, UNDEF_LOCATION);
 
-  auto paths = std::vector<Rust::AST::SimplePath> ();
-  Rust::Resolver::flatten_glob (glob, paths);
+  auto imports = std::vector<Rust::Resolver::Import> ();
+  Rust::Resolver::flatten_glob (glob, imports);
 
-  ASSERT_TRUE (!paths.empty ());
-  ASSERT_EQ (paths.size (), 1);
-  ASSERT_EQ (paths[0], "frobulator");
+  ASSERT_TRUE (!imports.empty ());
+  ASSERT_EQ (imports.size (), 1);
+  ASSERT_EQ (imports[0].get_path (), "frobulator");
 }
 
 static void
@@ -1115,13 +1110,13 @@ rust_flatten_rebind_none (void)
   auto rebind = Rust::AST::UseTreeRebind (Rust::AST::UseTreeRebind::NONE,
 					  foobar, UNDEF_LOCATION);
 
-  auto paths = std::vector<Rust::AST::SimplePath> ();
-  Rust::Resolver::flatten_rebind (rebind, paths);
+  auto imports = std::vector<Rust::Resolver::Import> ();
+  Rust::Resolver::flatten_rebind (rebind, imports);
 
-  ASSERT_TRUE (!paths.empty ());
-  ASSERT_EQ (paths.size (), 1);
-  ASSERT_EQ (paths[0].get_segments ()[0].as_string (), "foo");
-  ASSERT_EQ (paths[0].get_segments ()[1].as_string (), "bar");
+  ASSERT_TRUE (!imports.empty ());
+  ASSERT_EQ (imports.size (), 1);
+  ASSERT_EQ (imports[0].get_path ().get_segments ()[0].as_string (), "foo");
+  ASSERT_EQ (imports[0].get_path ().get_segments ()[1].as_string (), "bar");
 }
 
 static void
@@ -1132,13 +1127,13 @@ rust_flatten_rebind (void)
   auto rebind = Rust::AST::UseTreeRebind (Rust::AST::UseTreeRebind::IDENTIFIER,
 					  frob, UNDEF_LOCATION, {"saindoux"});
 
-  auto paths = std::vector<Rust::AST::SimplePath> ();
-  Rust::Resolver::flatten_rebind (rebind, paths);
+  auto imports = std::vector<Rust::Resolver::Import> ();
+  Rust::Resolver::flatten_rebind (rebind, imports);
 
-  ASSERT_TRUE (!paths.empty ());
-  ASSERT_EQ (paths.size (), 2);
-  ASSERT_EQ (paths[0], "frobulator");
-  ASSERT_EQ (paths[1], "saindoux");
+  ASSERT_TRUE (!imports.empty ());
+  ASSERT_EQ (imports.size (), 1);
+  ASSERT_EQ (imports[0].get_path (), "frobulator");
+  ASSERT_EQ (imports[0].get_name (), "saindoux");
 }
 
 static void
@@ -1154,17 +1149,15 @@ rust_flatten_rebind_nested (void)
     = Rust::AST::UseTreeRebind (Rust::AST::UseTreeRebind::IDENTIFIER,
 				foo_bar_baz, UNDEF_LOCATION, {"saindoux"});
 
-  auto paths = std::vector<Rust::AST::SimplePath> ();
-  Rust::Resolver::flatten_rebind (rebind, paths);
-
-  ASSERT_TRUE (!paths.empty ());
-  ASSERT_EQ (paths.size (), 2);
-  ASSERT_EQ (paths[0].get_segments ()[0].as_string (), "foo");
-  ASSERT_EQ (paths[0].get_segments ()[1].as_string (), "bar");
-  ASSERT_EQ (paths[0].get_segments ()[2].as_string (), "baz");
-  ASSERT_EQ (paths[1].get_segments ()[0].as_string (), "foo");
-  ASSERT_EQ (paths[1].get_segments ()[1].as_string (), "bar");
-  ASSERT_EQ (paths[1].get_segments ()[2].as_string (), "saindoux");
+  auto imports = std::vector<Rust::Resolver::Import> ();
+  Rust::Resolver::flatten_rebind (rebind, imports);
+
+  ASSERT_TRUE (!imports.empty ());
+  ASSERT_EQ (imports.size (), 1);
+  ASSERT_EQ (imports[0].get_path ().get_segments ()[0].as_string (), "foo");
+  ASSERT_EQ (imports[0].get_path ().get_segments ()[1].as_string (), "bar");
+  ASSERT_EQ (imports[0].get_path ().get_segments ()[2].as_string (), "baz");
+  ASSERT_EQ (imports[0].get_name (), "saindoux");
 }
 
 static void
@@ -1194,17 +1187,17 @@ rust_flatten_list (void)
     = Rust::AST::UseTreeList (Rust::AST::UseTreeList::PATH_PREFIXED, foo_bar,
 			      std::move (uses), UNDEF_LOCATION);
 
-  auto paths = std::vector<Rust::AST::SimplePath> ();
-  Rust::Resolver::flatten_list (list, paths);
-
-  ASSERT_TRUE (!paths.empty ());
-  ASSERT_EQ (paths.size (), 2);
-  ASSERT_EQ (paths[0].get_segments ()[0].as_string (), "foo");
-  ASSERT_EQ (paths[0].get_segments ()[1].as_string (), "bar");
-  ASSERT_EQ (paths[0].get_segments ()[2].as_string (), "baz");
-  ASSERT_EQ (paths[1].get_segments ()[0].as_string (), "foo");
-  ASSERT_EQ (paths[1].get_segments ()[1].as_string (), "bar");
-  ASSERT_EQ (paths[1].get_segments ()[2].as_string (), "bul");
+  auto imports = std::vector<Rust::Resolver::Import> ();
+  Rust::Resolver::flatten_list (list, imports);
+
+  ASSERT_TRUE (!imports.empty ());
+  ASSERT_EQ (imports.size (), 2);
+  ASSERT_EQ (imports[0].get_path ().get_segments ()[0].as_string (), "foo");
+  ASSERT_EQ (imports[0].get_path ().get_segments ()[1].as_string (), "bar");
+  ASSERT_EQ (imports[0].get_path ().get_segments ()[2].as_string (), "baz");
+  ASSERT_EQ (imports[1].get_path ().get_segments ()[0].as_string (), "foo");
+  ASSERT_EQ (imports[1].get_path ().get_segments ()[1].as_string (), "bar");
+  ASSERT_EQ (imports[1].get_path ().get_segments ()[2].as_string (), "bul");
 }
 
 static void
diff --git a/gcc/rust/resolve/rust-ast-resolve-item.h b/gcc/rust/resolve/rust-ast-resolve-item.h
index 0c7b7527c44..e397ffdfe8b 100644
--- a/gcc/rust/resolve/rust-ast-resolve-item.h
+++ b/gcc/rust/resolve/rust-ast-resolve-item.h
@@ -124,6 +124,29 @@ private:
   const CanonicalPath &canonical_prefix;
 };
 
+class Import
+{
+public:
+  Import (AST::SimplePath path, bool is_glob, std::string name)
+    : path (path), is_glob_f (is_glob), name (name)
+  {}
+
+  AST::SimplePath &get_path () { return path; }
+
+  const AST::SimplePath &get_path () const { return path; }
+
+  bool is_glob () const { return is_glob_f; }
+
+  const std::string &get_name () const { return name; }
+
+  void add_prefix (AST::SimplePath prefix);
+
+private:
+  AST::SimplePath path;
+  bool is_glob_f;
+  std::string name;
+};
+
 } // namespace Resolver
 } // namespace Rust
 
diff --git a/gcc/testsuite/rust/compile/use_2.rs b/gcc/testsuite/rust/compile/use_2.rs
new file mode 100644
index 00000000000..b89ff82caaa
--- /dev/null
+++ b/gcc/testsuite/rust/compile/use_2.rs
@@ -0,0 +1,7 @@
+mod foo {
+    pub struct S;
+}
+
+use foo::S as T;
+
+const V: T = T; // { dg-warning "unused name" }
-- 
2.42.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [COMMITTED 4/9] gccrs: expand: Fix formatting for "macro not found" error
  2024-02-21 13:15 [PATCHSET] Update Rust frontend 21/02/2024 arthur.cohen
                   ` (2 preceding siblings ...)
  2024-02-21 13:15 ` [COMMITTED 3/9] gccrs: Fix rebinding imports arthur.cohen
@ 2024-02-21 13:15 ` arthur.cohen
  2024-02-21 13:15 ` [COMMITTED 5/9] gccrs: Add testcase for #[rustc_const_stable] arthur.cohen
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: arthur.cohen @ 2024-02-21 13:15 UTC (permalink / raw)
  To: gcc-patches; +Cc: gcc-rust, Arthur Cohen

From: Arthur Cohen <arthur.cohen@embecosm.com>

gcc/rust/ChangeLog:

	* expand/rust-macro-expand.h (struct MacroExpander): Nitpick: fix
	formatting of emitted error.
---
 gcc/rust/expand/rust-macro-expand.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/rust/expand/rust-macro-expand.h b/gcc/rust/expand/rust-macro-expand.h
index f18e8e24a1d..896cdc6dcc8 100644
--- a/gcc/rust/expand/rust-macro-expand.h
+++ b/gcc/rust/expand/rust-macro-expand.h
@@ -414,7 +414,7 @@ struct MacroExpander
       = mappings->lookup_derive_proc_macro_invocation (path);
     if (!macro.has_value ())
       {
-	rust_error_at (path.get_locus (), "Macro not found");
+	rust_error_at (path.get_locus (), "macro not found");
 	return AST::Fragment::create_error ();
       }
 
@@ -437,7 +437,7 @@ struct MacroExpander
       = mappings->lookup_bang_proc_macro_invocation (invocation);
     if (!macro.has_value ())
       {
-	rust_error_at (invocation.get_locus (), "Macro not found");
+	rust_error_at (invocation.get_locus (), "macro not found");
 	return AST::Fragment::create_error ();
       }
 
@@ -459,7 +459,7 @@ struct MacroExpander
       = mappings->lookup_attribute_proc_macro_invocation (path);
     if (!macro.has_value ())
       {
-	rust_error_at (path.get_locus (), "Macro not found");
+	rust_error_at (path.get_locus (), "macro not found");
 	return AST::Fragment::create_error ();
       }
 
-- 
2.42.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [COMMITTED 5/9] gccrs: Add testcase for #[rustc_const_stable]
  2024-02-21 13:15 [PATCHSET] Update Rust frontend 21/02/2024 arthur.cohen
                   ` (3 preceding siblings ...)
  2024-02-21 13:15 ` [COMMITTED 4/9] gccrs: expand: Fix formatting for "macro not found" error arthur.cohen
@ 2024-02-21 13:15 ` arthur.cohen
  2024-02-21 13:15 ` [COMMITTED 6/9] gccrs: add powi intrinsics arthur.cohen
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: arthur.cohen @ 2024-02-21 13:15 UTC (permalink / raw)
  To: gcc-patches; +Cc: gcc-rust, Arthur Cohen

From: Arthur Cohen <arthur.cohen@embecosm.com>

To ensure we don't introduce regressions back to issue #2314

gcc/testsuite/ChangeLog:

	* rust/compile/rustc_const_stable.rs: New test.
---
 gcc/testsuite/rust/compile/rustc_const_stable.rs | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 gcc/testsuite/rust/compile/rustc_const_stable.rs

diff --git a/gcc/testsuite/rust/compile/rustc_const_stable.rs b/gcc/testsuite/rust/compile/rustc_const_stable.rs
new file mode 100644
index 00000000000..9208b1ab3b6
--- /dev/null
+++ b/gcc/testsuite/rust/compile/rustc_const_stable.rs
@@ -0,0 +1,2 @@
+#[rustc_const_stable(feature = "const_ascii_ctype_on_intrinsics", since = "1.47.0")]
+pub fn foo() {} // { dg-error "macro not found" "" { target *-*-* } .-1 }
-- 
2.42.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [COMMITTED 6/9] gccrs: add powi intrinsics
  2024-02-21 13:15 [PATCHSET] Update Rust frontend 21/02/2024 arthur.cohen
                   ` (4 preceding siblings ...)
  2024-02-21 13:15 ` [COMMITTED 5/9] gccrs: Add testcase for #[rustc_const_stable] arthur.cohen
@ 2024-02-21 13:15 ` arthur.cohen
  2024-02-21 13:15 ` [COMMITTED 7/9] gccrs: Fix lookup of TuplePattern sub-pattern types arthur.cohen
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: arthur.cohen @ 2024-02-21 13:15 UTC (permalink / raw)
  To: gcc-patches; +Cc: gcc-rust, Marc Poulhiès

From: Marc Poulhiès <dkm@kataplop.net>

gcc/rust/ChangeLog:

	* backend/rust-builtins.cc
	(BuiltinsContext::register_rust_mappings): Add powi and reformat.
	* backend/rust-builtins.h: Add missing copyright header.

gcc/testsuite/ChangeLog:

	* rust/compile/torture/intrinsics-math.rs: Adjust pow test, add
	test for powi.

Signed-off-by: Marc Poulhiès <dkm@kataplop.net>
---
 gcc/rust/backend/rust-builtins.cc             | 30 +++++++++++++++++--
 gcc/rust/backend/rust-builtins.h              |  2 ++
 .../rust/compile/torture/intrinsics-math.rs   | 12 ++++++--
 3 files changed, 39 insertions(+), 5 deletions(-)

diff --git a/gcc/rust/backend/rust-builtins.cc b/gcc/rust/backend/rust-builtins.cc
index 1a87f869206..282ecba70cb 100644
--- a/gcc/rust/backend/rust-builtins.cc
+++ b/gcc/rust/backend/rust-builtins.cc
@@ -285,46 +285,70 @@ void
 BuiltinsContext::register_rust_mappings ()
 {
   rust_intrinsic_to_gcc_builtin = {
-    {"sinf32", "__builtin_sinf"},
-    {"sqrtf32", "__builtin_sqrtf"},
-    {"sqrtf64", "__builtin_sqrt"},
     {"unreachable", "__builtin_unreachable"},
     {"abort", "__builtin_abort"},
+
+    // Math intrinsics
+    {"sqrtf32", "__builtin_sqrtf"},
+    {"sqrtf64", "__builtin_sqrt"},
+
+    {"sinf32", "__builtin_sinf"},
     {"sinf64", "__builtin_sin"},
+
     {"cosf32", "__builtin_cosf"},
     {"cosf64", "__builtin_cos"},
+
     {"powf32", "__builtin_powf"},
     {"powf64", "__builtin_pow"},
+
+    {"powif32", "__builtin_powif"},
+    {"powif64", "__builtin_powi"},
+
     {"expf32", "__builtin_expf"},
     {"expf64", "__builtin_exp"},
+
     {"exp2f32", "__builtin_exp2f"},
     {"exp2f64", "__builtin_exp2"},
+
     {"logf32", "__builtin_logf"},
     {"logf64", "__builtin_log"},
+
     {"log10f32", "__builtin_log10f"},
     {"log10f64", "__builtin_log10"},
+
     {"log2f32", "__builtin_log2f"},
     {"log2f64", "__builtin_log2"},
+
     {"fmaf32", "__builtin_fmaf"},
     {"fmaf64", "__builtin_fma"},
+
     {"fabsf32", "__builtin_fabsf"},
     {"fabsf64", "__builtin_fabs"},
+
     {"minnumf32", "__builtin_fminf"},
     {"minnumf64", "__builtin_fmin"},
+
     {"maxnumf32", "__builtin_fmaxf"},
     {"maxnumf64", "__builtin_fmax"},
+
     {"copysignf32", "__builtin_copysignf"},
     {"copysignf64", "__builtin_copysign"},
+
     {"floorf32", "__builtin_floorf"},
     {"floorf64", "__builtin_floor"},
+
     {"ceilf32", "__builtin_ceilf"},
     {"ceilf64", "__builtin_ceil"},
+
     {"truncf32", "__builtin_truncf"},
     {"truncf64", "__builtin_trunc"},
+
     {"rintf32", "__builtin_rintf"},
     {"rintf64", "__builtin_rint"},
+
     {"nearbyintf32", "__builtin_nearbyintf"},
     {"nearbyintf64", "__builtin_nearbyint"},
+
     {"roundf32", "__builtin_roundf"},
     {"roundf64", "__builtin_round"},
   };
diff --git a/gcc/rust/backend/rust-builtins.h b/gcc/rust/backend/rust-builtins.h
index 5052edad51e..65dd850e3c6 100644
--- a/gcc/rust/backend/rust-builtins.h
+++ b/gcc/rust/backend/rust-builtins.h
@@ -1,3 +1,5 @@
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
+
 // This file is part of GCC.
 
 // GCC is free software; you can redistribute it and/or modify it under
diff --git a/gcc/testsuite/rust/compile/torture/intrinsics-math.rs b/gcc/testsuite/rust/compile/torture/intrinsics-math.rs
index 42acdde1494..e0d15f99d48 100644
--- a/gcc/testsuite/rust/compile/torture/intrinsics-math.rs
+++ b/gcc/testsuite/rust/compile/torture/intrinsics-math.rs
@@ -14,6 +14,9 @@ extern "rust-intrinsic" {
     pub fn powf32(a: f32, x: f32) -> f32;
     pub fn powf64(a: f64, x: f64) -> f64;
 
+    pub fn powif32(a: f32, x: i32) -> f32;
+    pub fn powif64(a: f64, x: i32) -> f64;
+
     pub fn expf32(x: f32) -> f32;
     pub fn expf64(x: f64) -> f64;
 
@@ -84,9 +87,14 @@ fn main() {
         // { dg-final { scan-tree-dump-times {(?n)f64 .* __builtin_cos.? \(.*6\.0e\+0\);$} 1 original } }
 
         f32 = powf32(7f32, 8f32);
-        // { dg-final { scan-tree-dump-times {(?n)f32 .* __builtin_pow. \(.*7\.0e\+0, .*8\.0e\+0\);$} 1 original } }
+        // { dg-final { scan-tree-dump-times {(?n)f32 .* __builtin_pow[^i] \(.*7\.0e\+0, .*8\.0e\+0\);$} 1 original } }
         f64 = powf64(9f64, 10f64);
-        // { dg-final { scan-tree-dump-times {(?n)f64 .* __builtin_pow.? \(.*9\.0e\+0, .*1\.0e\+1\);$} 1 original } }
+        // { dg-final { scan-tree-dump-times {(?n)f64 .* __builtin_pow[^i]? \(.*9\.0e\+0, .*1\.0e\+1\);$} 1 original } }
+
+        f32 = powif32(7f32, 8i32);
+        // { dg-final { scan-tree-dump-times {(?n)f32 .* __builtin_powi. \(.*7\.0e\+0, .*8\);$} 1 original } }
+        f64 = powif64(9f64, 10i32);
+        // { dg-final { scan-tree-dump-times {(?n)f64 .* __builtin_powi.? \(.*9\.0e\+0, .*10\);$} 1 original } }
 
         f32 = expf32(11f32);
         // { dg-final { scan-tree-dump-times {(?n)f32 .* __builtin_exp. \(.*1\.1e\+1\);$} 1 original } }
-- 
2.42.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [COMMITTED 7/9] gccrs: Fix lookup of TuplePattern sub-pattern types
  2024-02-21 13:15 [PATCHSET] Update Rust frontend 21/02/2024 arthur.cohen
                   ` (5 preceding siblings ...)
  2024-02-21 13:15 ` [COMMITTED 6/9] gccrs: add powi intrinsics arthur.cohen
@ 2024-02-21 13:15 ` arthur.cohen
  2024-02-21 13:15 ` [COMMITTED 8/9] gccrs: Add variadic check on function params arthur.cohen
  2024-02-21 13:15 ` [COMMITTED 9/9] Update copyright years arthur.cohen
  8 siblings, 0 replies; 10+ messages in thread
From: arthur.cohen @ 2024-02-21 13:15 UTC (permalink / raw)
  To: gcc-patches; +Cc: gcc-rust, Owen Avery

From: Owen Avery <powerboat9.gamer@gmail.com>

gcc/rust/ChangeLog:

	* backend/rust-compile-pattern.cc
	(CompilePatternLet::visit):
	Lookup type of sub-pattern, not tuple pattern itself.

gcc/testsuite/ChangeLog:

	* rust/compile/issue-2847-b.rs: New test.

Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
---
 gcc/rust/backend/rust-compile-pattern.cc   | 12 ++++++------
 gcc/testsuite/rust/compile/issue-2847-b.rs |  4 ++++
 2 files changed, 10 insertions(+), 6 deletions(-)
 create mode 100644 gcc/testsuite/rust/compile/issue-2847-b.rs

diff --git a/gcc/rust/backend/rust-compile-pattern.cc b/gcc/rust/backend/rust-compile-pattern.cc
index 4fa611f5383..1a32f02c3ea 100644
--- a/gcc/rust/backend/rust-compile-pattern.cc
+++ b/gcc/rust/backend/rust-compile-pattern.cc
@@ -678,8 +678,8 @@ CompilePatternLet::visit (HIR::TuplePattern &pattern)
 	for (auto &sub : items_lower)
 	  {
 	    TyTy::BaseType *ty_sub = nullptr;
-	    HirId pattern_id = pattern.get_mappings ().get_hirid ();
-	    bool ok = ctx->get_tyctx ()->lookup_type (pattern_id, &ty_sub);
+	    HirId sub_id = sub->get_mappings ().get_hirid ();
+	    bool ok = ctx->get_tyctx ()->lookup_type (sub_id, &ty_sub);
 	    rust_assert (ok);
 
 	    tree sub_init
@@ -697,8 +697,8 @@ CompilePatternLet::visit (HIR::TuplePattern &pattern)
 	for (auto &sub : items_upper)
 	  {
 	    TyTy::BaseType *ty_sub = nullptr;
-	    HirId pattern_id = pattern.get_mappings ().get_hirid ();
-	    bool ok = ctx->get_tyctx ()->lookup_type (pattern_id, &ty_sub);
+	    HirId sub_id = sub->get_mappings ().get_hirid ();
+	    bool ok = ctx->get_tyctx ()->lookup_type (sub_id, &ty_sub);
 	    rust_assert (ok);
 
 	    tree sub_init
@@ -719,8 +719,8 @@ CompilePatternLet::visit (HIR::TuplePattern &pattern)
 	for (auto &sub : items.get_patterns ())
 	  {
 	    TyTy::BaseType *ty_sub = nullptr;
-	    HirId pattern_id = pattern.get_mappings ().get_hirid ();
-	    bool ok = ctx->get_tyctx ()->lookup_type (pattern_id, &ty_sub);
+	    HirId sub_id = sub->get_mappings ().get_hirid ();
+	    bool ok = ctx->get_tyctx ()->lookup_type (sub_id, &ty_sub);
 	    rust_assert (ok);
 
 	    tree sub_init
diff --git a/gcc/testsuite/rust/compile/issue-2847-b.rs b/gcc/testsuite/rust/compile/issue-2847-b.rs
new file mode 100644
index 00000000000..ab2614210fc
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-2847-b.rs
@@ -0,0 +1,4 @@
+pub fn test() -> i32 {
+    let (a, _) = (1, 2);
+    a
+}
-- 
2.42.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [COMMITTED 8/9] gccrs: Add variadic check on function params
  2024-02-21 13:15 [PATCHSET] Update Rust frontend 21/02/2024 arthur.cohen
                   ` (6 preceding siblings ...)
  2024-02-21 13:15 ` [COMMITTED 7/9] gccrs: Fix lookup of TuplePattern sub-pattern types arthur.cohen
@ 2024-02-21 13:15 ` arthur.cohen
  2024-02-21 13:15 ` [COMMITTED 9/9] Update copyright years arthur.cohen
  8 siblings, 0 replies; 10+ messages in thread
From: arthur.cohen @ 2024-02-21 13:15 UTC (permalink / raw)
  To: gcc-patches; +Cc: gcc-rust, 0xn4utilus

From: 0xn4utilus <gyanendrabanjare8@gmail.com>

gcc/rust/ChangeLog:

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
	Add variadic check on all parameters.

gcc/testsuite/ChangeLog:

	* rust/compile/issue-2850.rs: New test.

Signed-off-by: 0xn4utilus <gyanendrabanjare8@gmail.com>
---
 gcc/rust/checks/errors/rust-ast-validation.cc | 12 ++++++++----
 gcc/testsuite/rust/compile/issue-2850.rs      | 17 +++++++++++++++++
 2 files changed, 25 insertions(+), 4 deletions(-)
 create mode 100644 gcc/testsuite/rust/compile/issue-2850.rs

diff --git a/gcc/rust/checks/errors/rust-ast-validation.cc b/gcc/rust/checks/errors/rust-ast-validation.cc
index d57b7cb70fe..fcba57d0a92 100644
--- a/gcc/rust/checks/errors/rust-ast-validation.cc
+++ b/gcc/rust/checks/errors/rust-ast-validation.cc
@@ -132,10 +132,14 @@ ASTValidation::visit (AST::Function &function)
 	rust_error_at (function.get_locus (), "free function without a body");
     }
 
-  if (function.is_variadic ())
-    rust_error_at (
-      function.get_function_params ().back ()->get_locus (),
-      "only foreign or %<unsafe extern \"C\"%> functions may be C-variadic");
+  auto &function_params = function.get_function_params ();
+  for (auto it = function_params.begin (); it != function_params.end (); it++)
+    {
+      if (it->get ()->is_variadic ())
+	rust_error_at (it->get ()->get_locus (),
+		       "only foreign or %<unsafe extern \"C\"%> functions may "
+		       "be C-variadic");
+    }
 
   AST::ContextualASTVisitor::visit (function);
 }
diff --git a/gcc/testsuite/rust/compile/issue-2850.rs b/gcc/testsuite/rust/compile/issue-2850.rs
new file mode 100644
index 00000000000..62cbe0f6524
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-2850.rs
@@ -0,0 +1,17 @@
+fn myfun0(...,_:i32) {}
+// { dg-error "only foreign or .unsafe extern \"C\". functions may be C-variadic" "" { target *-*-* } .-1 }
+
+fn myfun1(a:i32,...,_:i32) {}
+// { dg-error "only foreign or .unsafe extern \"C\". functions may be C-variadic" "" { target *-*-* } .-1 }
+
+struct z {
+    x: f64,
+    y: f64,
+}
+
+impl z {
+    fn new(x: f64, ..., y: f64) -> z {
+        // { dg-error "only foreign or .unsafe extern \"C\". functions may be C-variadic" "" { target *-*-* } .-1 }
+        z { x: x, y: y }
+    }
+}
\ No newline at end of file
-- 
2.42.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [COMMITTED 9/9] Update copyright years.
  2024-02-21 13:15 [PATCHSET] Update Rust frontend 21/02/2024 arthur.cohen
                   ` (7 preceding siblings ...)
  2024-02-21 13:15 ` [COMMITTED 8/9] gccrs: Add variadic check on function params arthur.cohen
@ 2024-02-21 13:15 ` arthur.cohen
  8 siblings, 0 replies; 10+ messages in thread
From: arthur.cohen @ 2024-02-21 13:15 UTC (permalink / raw)
  To: gcc-patches; +Cc: gcc-rust, Sahil Yeole

From: Sahil Yeole <sahilyeole93@gmail.com>

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
---
 gcc/rust/ast/rust-ast-builder.cc                              | 2 +-
 gcc/rust/ast/rust-ast-builder.h                               | 2 +-
 gcc/rust/ast/rust-ast-collector.cc                            | 2 +-
 gcc/rust/ast/rust-ast-collector.h                             | 2 +-
 gcc/rust/ast/rust-ast-formatting.cc                           | 2 +-
 gcc/rust/ast/rust-ast-formatting.h                            | 2 +-
 gcc/rust/ast/rust-ast-visitor.cc                              | 2 +-
 gcc/rust/ast/rust-path.cc                                     | 2 +-
 gcc/rust/ast/rust-pattern.cc                                  | 2 +-
 gcc/rust/backend/rust-mangle-legacy.cc                        | 2 +-
 gcc/rust/backend/rust-mangle-v0.cc                            | 2 +-
 gcc/rust/backend/rust-mangle.cc                               | 2 +-
 gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.cc | 2 +-
 gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.h  | 2 +-
 gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h   | 2 +-
 .../checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h    | 2 +-
 gcc/rust/checks/errors/borrowck/rust-bir-builder-pattern.h    | 2 +-
 gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h     | 2 +-
 gcc/rust/checks/errors/borrowck/rust-bir-builder.h            | 2 +-
 gcc/rust/checks/errors/borrowck/rust-bir-dump.h               | 2 +-
 gcc/rust/checks/errors/borrowck/rust-bir-place.h              | 2 +-
 gcc/rust/checks/errors/borrowck/rust-bir-visitor.h            | 2 +-
 gcc/rust/checks/errors/borrowck/rust-bir.h                    | 2 +-
 gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc        | 2 +-
 gcc/rust/checks/errors/borrowck/rust-borrow-checker.h         | 2 +-
 gcc/rust/checks/errors/borrowck/rust-function-collector.h     | 2 +-
 gcc/rust/checks/errors/rust-ast-validation.cc                 | 2 +-
 gcc/rust/checks/errors/rust-ast-validation.h                  | 2 +-
 gcc/rust/checks/errors/rust-readonly-check.cc                 | 2 +-
 gcc/rust/checks/errors/rust-readonly-check.h                  | 2 +-
 gcc/rust/expand/rust-derive-clone.cc                          | 2 +-
 gcc/rust/expand/rust-derive-clone.h                           | 2 +-
 gcc/rust/expand/rust-derive-copy.cc                           | 2 +-
 gcc/rust/expand/rust-derive-copy.h                            | 2 +-
 gcc/rust/expand/rust-derive.cc                                | 2 +-
 gcc/rust/expand/rust-derive.h                                 | 2 +-
 gcc/rust/expand/rust-expand-visitor.cc                        | 2 +-
 gcc/rust/expand/rust-expand-visitor.h                         | 2 +-
 gcc/rust/expand/rust-macro-invoc-lexer.cc                     | 2 +-
 gcc/rust/expand/rust-macro-substitute-ctx.cc                  | 2 +-
 gcc/rust/expand/rust-proc-macro-invoc-lexer.cc                | 2 +-
 gcc/rust/expand/rust-proc-macro-invoc-lexer.h                 | 2 +-
 gcc/rust/hir/rust-ast-lower-implitem.cc                       | 2 +-
 gcc/rust/hir/rust-ast-lower-stmt.cc                           | 2 +-
 gcc/rust/lex/rust-input-source.h                              | 2 +-
 gcc/rust/resolve/rust-default-resolver.cc                     | 2 +-
 gcc/rust/resolve/rust-default-resolver.h                      | 2 +-
 gcc/rust/resolve/rust-early-name-resolver-2.0.cc              | 2 +-
 gcc/rust/resolve/rust-early-name-resolver-2.0.h               | 2 +-
 gcc/rust/resolve/rust-forever-stack.h                         | 2 +-
 gcc/rust/resolve/rust-forever-stack.hxx                       | 2 +-
 gcc/rust/resolve/rust-late-name-resolver-2.0.cc               | 2 +-
 gcc/rust/resolve/rust-late-name-resolver-2.0.h                | 2 +-
 gcc/rust/resolve/rust-name-resolution-context.cc              | 2 +-
 gcc/rust/resolve/rust-name-resolution-context.h               | 2 +-
 gcc/rust/resolve/rust-rib.cc                                  | 2 +-
 gcc/rust/resolve/rust-rib.h                                   | 2 +-
 gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc           | 2 +-
 gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h            | 2 +-
 gcc/rust/rust-attribs.cc                                      | 2 +-
 gcc/rust/rust-error-codes.def                                 | 2 +-
 gcc/rust/util/bi-map.h                                        | 2 +-
 gcc/rust/util/make-rust-unicode.py                            | 4 ++--
 gcc/rust/util/rust-attribute-values.h                         | 2 +-
 gcc/rust/util/rust-dir-owner.cc                               | 2 +-
 gcc/rust/util/rust-dir-owner.h                                | 2 +-
 gcc/rust/util/rust-dump.h                                     | 2 +-
 gcc/rust/util/rust-keyword-values.cc                          | 2 +-
 gcc/rust/util/rust-keyword-values.h                           | 2 +-
 gcc/rust/util/rust-punycode.cc                                | 2 +-
 gcc/rust/util/rust-punycode.h                                 | 2 +-
 gcc/rust/util/rust-unicode-data.h                             | 2 +-
 gcc/rust/util/rust-unicode.cc                                 | 2 +-
 gcc/rust/util/rust-unicode.h                                  | 2 +-
 libgrust/libproc_macro/bridge.rs                              | 2 +-
 libgrust/libproc_macro/bridge/ffistring.rs                    | 2 +-
 libgrust/libproc_macro/bridge/group.rs                        | 2 +-
 libgrust/libproc_macro/bridge/ident.rs                        | 2 +-
 libgrust/libproc_macro/bridge/literal.rs                      | 2 +-
 libgrust/libproc_macro/bridge/punct.rs                        | 2 +-
 libgrust/libproc_macro/bridge/span.rs                         | 2 +-
 libgrust/libproc_macro/bridge/token_stream.rs                 | 2 +-
 libgrust/libproc_macro/group.rs                               | 2 +-
 libgrust/libproc_macro/ident.rs                               | 2 +-
 libgrust/libproc_macro/lib.rs                                 | 2 +-
 libgrust/libproc_macro/literal.rs                             | 2 +-
 libgrust/libproc_macro/punct.rs                               | 2 +-
 libgrust/libproc_macro/span.rs                                | 2 +-
 libgrust/libproc_macro/token_stream.rs                        | 2 +-
 libgrust/libproc_macro_internal/bridge.h                      | 2 +-
 libgrust/libproc_macro_internal/ffistring.cc                  | 2 +-
 libgrust/libproc_macro_internal/ffistring.h                   | 2 +-
 libgrust/libproc_macro_internal/group.cc                      | 2 +-
 libgrust/libproc_macro_internal/group.h                       | 2 +-
 libgrust/libproc_macro_internal/ident.cc                      | 2 +-
 libgrust/libproc_macro_internal/ident.h                       | 2 +-
 libgrust/libproc_macro_internal/literal.cc                    | 2 +-
 libgrust/libproc_macro_internal/literal.h                     | 2 +-
 libgrust/libproc_macro_internal/proc_macro.cc                 | 2 +-
 libgrust/libproc_macro_internal/proc_macro.h                  | 2 +-
 libgrust/libproc_macro_internal/punct.cc                      | 2 +-
 libgrust/libproc_macro_internal/punct.h                       | 2 +-
 libgrust/libproc_macro_internal/registration.h                | 2 +-
 libgrust/libproc_macro_internal/span.cc                       | 2 +-
 libgrust/libproc_macro_internal/span.h                        | 2 +-
 libgrust/libproc_macro_internal/tokenstream.cc                | 2 +-
 libgrust/libproc_macro_internal/tokenstream.h                 | 2 +-
 libgrust/libproc_macro_internal/tokentree.cc                  | 2 +-
 libgrust/libproc_macro_internal/tokentree.h                   | 2 +-
 109 files changed, 110 insertions(+), 110 deletions(-)

diff --git a/gcc/rust/ast/rust-ast-builder.cc b/gcc/rust/ast/rust-ast-builder.cc
index fd6f519fa25..0d5218c6381 100644
--- a/gcc/rust/ast/rust-ast-builder.cc
+++ b/gcc/rust/ast/rust-ast-builder.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/ast/rust-ast-builder.h b/gcc/rust/ast/rust-ast-builder.h
index 0ee36ff44fb..c0b4fa7b2cb 100644
--- a/gcc/rust/ast/rust-ast-builder.h
+++ b/gcc/rust/ast/rust-ast-builder.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/ast/rust-ast-collector.cc b/gcc/rust/ast/rust-ast-collector.cc
index fb0e6f9be1d..181f1b100be 100644
--- a/gcc/rust/ast/rust-ast-collector.cc
+++ b/gcc/rust/ast/rust-ast-collector.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/ast/rust-ast-collector.h b/gcc/rust/ast/rust-ast-collector.h
index 246411fa15f..cf97c185a26 100644
--- a/gcc/rust/ast/rust-ast-collector.h
+++ b/gcc/rust/ast/rust-ast-collector.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/ast/rust-ast-formatting.cc b/gcc/rust/ast/rust-ast-formatting.cc
index e6f969f2dfc..6137f26ed6a 100644
--- a/gcc/rust/ast/rust-ast-formatting.cc
+++ b/gcc/rust/ast/rust-ast-formatting.cc
@@ -1,5 +1,5 @@
 /* General AST-related method implementations for Rust frontend.
-   Copyright (C) 2009-2023 Free Software Foundation, Inc.
+   Copyright (C) 2009-2024 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
diff --git a/gcc/rust/ast/rust-ast-formatting.h b/gcc/rust/ast/rust-ast-formatting.h
index 04e20cc3114..7eaee6259ce 100644
--- a/gcc/rust/ast/rust-ast-formatting.h
+++ b/gcc/rust/ast/rust-ast-formatting.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/ast/rust-ast-visitor.cc b/gcc/rust/ast/rust-ast-visitor.cc
index cb7ba846c39..27b9aa47d99 100644
--- a/gcc/rust/ast/rust-ast-visitor.cc
+++ b/gcc/rust/ast/rust-ast-visitor.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/ast/rust-path.cc b/gcc/rust/ast/rust-path.cc
index 431480cf7e9..9131962c168 100644
--- a/gcc/rust/ast/rust-path.cc
+++ b/gcc/rust/ast/rust-path.cc
@@ -1,5 +1,5 @@
 /* General AST-related method implementations for Rust frontend.
-   Copyright (C) 2009-2023 Free Software Foundation, Inc.
+   Copyright (C) 2009-2024 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
diff --git a/gcc/rust/ast/rust-pattern.cc b/gcc/rust/ast/rust-pattern.cc
index e4712c34e08..9091637c786 100644
--- a/gcc/rust/ast/rust-pattern.cc
+++ b/gcc/rust/ast/rust-pattern.cc
@@ -1,5 +1,5 @@
 /* General AST-related method implementations for Rust frontend.
-   Copyright (C) 2009-2023 Free Software Foundation, Inc.
+   Copyright (C) 2009-2024 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
diff --git a/gcc/rust/backend/rust-mangle-legacy.cc b/gcc/rust/backend/rust-mangle-legacy.cc
index fd0ba1b3745..2826b363547 100644
--- a/gcc/rust/backend/rust-mangle-legacy.cc
+++ b/gcc/rust/backend/rust-mangle-legacy.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/backend/rust-mangle-v0.cc b/gcc/rust/backend/rust-mangle-v0.cc
index 634ccb07aa4..3e25ac3adb4 100644
--- a/gcc/rust/backend/rust-mangle-v0.cc
+++ b/gcc/rust/backend/rust-mangle-v0.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/backend/rust-mangle.cc b/gcc/rust/backend/rust-mangle.cc
index 53ed6b54527..58944355371 100644
--- a/gcc/rust/backend/rust-mangle.cc
+++ b/gcc/rust/backend/rust-mangle.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.cc b/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
index 96bc738964e..ead6e403661 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2022 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.h b/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.h
index 1352965b725..0654bcc27b0 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h b/gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h
index cd611514776..b4192677261 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h b/gcc/rust/checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h
index 440549eba29..fb0c75b4f72 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2022 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder-pattern.h b/gcc/rust/checks/errors/borrowck/rust-bir-builder-pattern.h
index 9949ef17989..76943ff1b04 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-builder-pattern.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder-pattern.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h b/gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h
index 7df54a4880a..d6390392d7f 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder.h b/gcc/rust/checks/errors/borrowck/rust-bir-builder.h
index 177b6555889..509929bc684 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-builder.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-dump.h b/gcc/rust/checks/errors/borrowck/rust-bir-dump.h
index 1efc0ea2bf4..e8cf1372602 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-dump.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-dump.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-place.h b/gcc/rust/checks/errors/borrowck/rust-bir-place.h
index 523c2f6ec90..7b04ae40824 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-place.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-place.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-visitor.h b/gcc/rust/checks/errors/borrowck/rust-bir-visitor.h
index 48b67c0fead..8c6053d2362 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-visitor.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-visitor.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir.h b/gcc/rust/checks/errors/borrowck/rust-bir.h
index bcb32c9659b..aa97eac17b4 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc b/gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc
index 0c952ad32fa..5daa7eb8ded 100644
--- a/gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc
+++ b/gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-borrow-checker.h b/gcc/rust/checks/errors/borrowck/rust-borrow-checker.h
index e1a3f191c87..b77858f9da3 100644
--- a/gcc/rust/checks/errors/borrowck/rust-borrow-checker.h
+++ b/gcc/rust/checks/errors/borrowck/rust-borrow-checker.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/borrowck/rust-function-collector.h b/gcc/rust/checks/errors/borrowck/rust-function-collector.h
index f8d36ffe2b4..b19bfdf855e 100644
--- a/gcc/rust/checks/errors/borrowck/rust-function-collector.h
+++ b/gcc/rust/checks/errors/borrowck/rust-function-collector.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/rust-ast-validation.cc b/gcc/rust/checks/errors/rust-ast-validation.cc
index fcba57d0a92..bf70ca5d96f 100644
--- a/gcc/rust/checks/errors/rust-ast-validation.cc
+++ b/gcc/rust/checks/errors/rust-ast-validation.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/rust-ast-validation.h b/gcc/rust/checks/errors/rust-ast-validation.h
index 01d923ceff3..641fb26f089 100644
--- a/gcc/rust/checks/errors/rust-ast-validation.h
+++ b/gcc/rust/checks/errors/rust-ast-validation.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/rust-readonly-check.cc b/gcc/rust/checks/errors/rust-readonly-check.cc
index 474344fd638..324e54b1dc2 100644
--- a/gcc/rust/checks/errors/rust-readonly-check.cc
+++ b/gcc/rust/checks/errors/rust-readonly-check.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2021-2023 Free Software Foundation, Inc.
+// Copyright (C) 2021-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/checks/errors/rust-readonly-check.h b/gcc/rust/checks/errors/rust-readonly-check.h
index 4fe78fb67f2..b627e417ea2 100644
--- a/gcc/rust/checks/errors/rust-readonly-check.h
+++ b/gcc/rust/checks/errors/rust-readonly-check.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2021-2023 Free Software Foundation, Inc.
+// Copyright (C) 2021-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/expand/rust-derive-clone.cc b/gcc/rust/expand/rust-derive-clone.cc
index 01226e4f913..d09ea2c455b 100644
--- a/gcc/rust/expand/rust-derive-clone.cc
+++ b/gcc/rust/expand/rust-derive-clone.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/expand/rust-derive-clone.h b/gcc/rust/expand/rust-derive-clone.h
index 1009247e882..31756576c5f 100644
--- a/gcc/rust/expand/rust-derive-clone.h
+++ b/gcc/rust/expand/rust-derive-clone.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/expand/rust-derive-copy.cc b/gcc/rust/expand/rust-derive-copy.cc
index ffac7fd20b2..a9a300bf750 100644
--- a/gcc/rust/expand/rust-derive-copy.cc
+++ b/gcc/rust/expand/rust-derive-copy.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/expand/rust-derive-copy.h b/gcc/rust/expand/rust-derive-copy.h
index f02b6716adc..73903b901b3 100644
--- a/gcc/rust/expand/rust-derive-copy.h
+++ b/gcc/rust/expand/rust-derive-copy.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/expand/rust-derive.cc b/gcc/rust/expand/rust-derive.cc
index 7b8f404b1db..e9927df1559 100644
--- a/gcc/rust/expand/rust-derive.cc
+++ b/gcc/rust/expand/rust-derive.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/expand/rust-derive.h b/gcc/rust/expand/rust-derive.h
index 1531d81f57c..8fe29c0db75 100644
--- a/gcc/rust/expand/rust-derive.h
+++ b/gcc/rust/expand/rust-derive.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/expand/rust-expand-visitor.cc b/gcc/rust/expand/rust-expand-visitor.cc
index e42715b865f..6ca63115195 100644
--- a/gcc/rust/expand/rust-expand-visitor.cc
+++ b/gcc/rust/expand/rust-expand-visitor.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/expand/rust-expand-visitor.h b/gcc/rust/expand/rust-expand-visitor.h
index 8f61db659c3..f40b5773fc1 100644
--- a/gcc/rust/expand/rust-expand-visitor.h
+++ b/gcc/rust/expand/rust-expand-visitor.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/expand/rust-macro-invoc-lexer.cc b/gcc/rust/expand/rust-macro-invoc-lexer.cc
index 003c87d62ff..a7a586a6d58 100644
--- a/gcc/rust/expand/rust-macro-invoc-lexer.cc
+++ b/gcc/rust/expand/rust-macro-invoc-lexer.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/expand/rust-macro-substitute-ctx.cc b/gcc/rust/expand/rust-macro-substitute-ctx.cc
index eeb573a39d6..03709a1e937 100644
--- a/gcc/rust/expand/rust-macro-substitute-ctx.cc
+++ b/gcc/rust/expand/rust-macro-substitute-ctx.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/expand/rust-proc-macro-invoc-lexer.cc b/gcc/rust/expand/rust-proc-macro-invoc-lexer.cc
index 1c370c10b29..c282ac5e422 100644
--- a/gcc/rust/expand/rust-proc-macro-invoc-lexer.cc
+++ b/gcc/rust/expand/rust-proc-macro-invoc-lexer.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/expand/rust-proc-macro-invoc-lexer.h b/gcc/rust/expand/rust-proc-macro-invoc-lexer.h
index 94eb6d5bfe2..6d75046d17f 100644
--- a/gcc/rust/expand/rust-proc-macro-invoc-lexer.h
+++ b/gcc/rust/expand/rust-proc-macro-invoc-lexer.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/hir/rust-ast-lower-implitem.cc b/gcc/rust/hir/rust-ast-lower-implitem.cc
index 399c3fb8179..38bac5de703 100644
--- a/gcc/rust/hir/rust-ast-lower-implitem.cc
+++ b/gcc/rust/hir/rust-ast-lower-implitem.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/hir/rust-ast-lower-stmt.cc b/gcc/rust/hir/rust-ast-lower-stmt.cc
index c050771b82f..6bd1a241b6d 100644
--- a/gcc/rust/hir/rust-ast-lower-stmt.cc
+++ b/gcc/rust/hir/rust-ast-lower-stmt.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/lex/rust-input-source.h b/gcc/rust/lex/rust-input-source.h
index 03bf43b5b3b..3b8b65c8e4c 100644
--- a/gcc/rust/lex/rust-input-source.h
+++ b/gcc/rust/lex/rust-input-source.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-default-resolver.cc b/gcc/rust/resolve/rust-default-resolver.cc
index b1163535657..9f7fda4adaa 100644
--- a/gcc/rust/resolve/rust-default-resolver.cc
+++ b/gcc/rust/resolve/rust-default-resolver.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-default-resolver.h b/gcc/rust/resolve/rust-default-resolver.h
index d508ff3ac79..20458ede7bc 100644
--- a/gcc/rust/resolve/rust-default-resolver.h
+++ b/gcc/rust/resolve/rust-default-resolver.h
@@ -1,5 +1,5 @@
 
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-early-name-resolver-2.0.cc b/gcc/rust/resolve/rust-early-name-resolver-2.0.cc
index a5d5b191c88..982c696d2af 100644
--- a/gcc/rust/resolve/rust-early-name-resolver-2.0.cc
+++ b/gcc/rust/resolve/rust-early-name-resolver-2.0.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-early-name-resolver-2.0.h b/gcc/rust/resolve/rust-early-name-resolver-2.0.h
index d9f985fe575..fc5d8af7038 100644
--- a/gcc/rust/resolve/rust-early-name-resolver-2.0.h
+++ b/gcc/rust/resolve/rust-early-name-resolver-2.0.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-forever-stack.h b/gcc/rust/resolve/rust-forever-stack.h
index a540e682e5b..01371fc7bcd 100644
--- a/gcc/rust/resolve/rust-forever-stack.h
+++ b/gcc/rust/resolve/rust-forever-stack.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-forever-stack.hxx b/gcc/rust/resolve/rust-forever-stack.hxx
index 867144adf92..0aa9943191e 100644
--- a/gcc/rust/resolve/rust-forever-stack.hxx
+++ b/gcc/rust/resolve/rust-forever-stack.hxx
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
index 5f70f575582..f9731a451a3 100644
--- a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
+++ b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-late-name-resolver-2.0.h b/gcc/rust/resolve/rust-late-name-resolver-2.0.h
index 15940d053ae..3a8a0060f5a 100644
--- a/gcc/rust/resolve/rust-late-name-resolver-2.0.h
+++ b/gcc/rust/resolve/rust-late-name-resolver-2.0.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-name-resolution-context.cc b/gcc/rust/resolve/rust-name-resolution-context.cc
index f71ef91505b..f35db7e925e 100644
--- a/gcc/rust/resolve/rust-name-resolution-context.cc
+++ b/gcc/rust/resolve/rust-name-resolution-context.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-name-resolution-context.h b/gcc/rust/resolve/rust-name-resolution-context.h
index 7a1924581ab..bc3c4bb5ddb 100644
--- a/gcc/rust/resolve/rust-name-resolution-context.h
+++ b/gcc/rust/resolve/rust-name-resolution-context.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-rib.cc b/gcc/rust/resolve/rust-rib.cc
index 21fbe2ca530..a1981498673 100644
--- a/gcc/rust/resolve/rust-rib.cc
+++ b/gcc/rust/resolve/rust-rib.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-rib.h b/gcc/rust/resolve/rust-rib.h
index 4ffd00a5d6c..da777bb9ba7 100644
--- a/gcc/rust/resolve/rust-rib.h
+++ b/gcc/rust/resolve/rust-rib.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
index af7766d7b96..6470a63c9ad 100644
--- a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
+++ b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h
index f1943ee1398..ac11f310370 100644
--- a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h
+++ b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/rust-attribs.cc b/gcc/rust/rust-attribs.cc
index 134dcf9eeca..86d5b3dfeb9 100644
--- a/gcc/rust/rust-attribs.cc
+++ b/gcc/rust/rust-attribs.cc
@@ -1,5 +1,5 @@
 /* rust-attribs.c -- Rust attributes handling.
-   Copyright (C) 2015-2023 Free Software Foundation, Inc.
+   Copyright (C) 2015-2024 Free Software Foundation, Inc.
 
 GCC is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/gcc/rust/rust-error-codes.def b/gcc/rust/rust-error-codes.def
index bcedbf43c1b..ffb4c739cf1 100644
--- a/gcc/rust/rust-error-codes.def
+++ b/gcc/rust/rust-error-codes.def
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/util/bi-map.h b/gcc/rust/util/bi-map.h
index ab5878d8fb7..ff26c833811 100644
--- a/gcc/rust/util/bi-map.h
+++ b/gcc/rust/util/bi-map.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/util/make-rust-unicode.py b/gcc/rust/util/make-rust-unicode.py
index f6f04ebdf5b..a89f2f29f46 100644
--- a/gcc/rust/util/make-rust-unicode.py
+++ b/gcc/rust/util/make-rust-unicode.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2023 Free Software Foundation, Inc.
+# Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 # This file is part of GCC.
 
@@ -28,7 +28,7 @@ Codepoint = int
 Range = Tuple[Codepoint, Codepoint]
 
 COPYRIGHT = (
-    "// Copyright (C) 2020-2023 Free Software Foundation, Inc.\n"
+    "// Copyright (C) 2020-2024 Free Software Foundation, Inc.\n"
     "\n"
     "// This file is part of GCC.\n"
     "\n"
diff --git a/gcc/rust/util/rust-attribute-values.h b/gcc/rust/util/rust-attribute-values.h
index b8994da2df9..e284cec1a16 100644
--- a/gcc/rust/util/rust-attribute-values.h
+++ b/gcc/rust/util/rust-attribute-values.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/util/rust-dir-owner.cc b/gcc/rust/util/rust-dir-owner.cc
index 24bbe7b3a28..2c30260a16a 100644
--- a/gcc/rust/util/rust-dir-owner.cc
+++ b/gcc/rust/util/rust-dir-owner.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/util/rust-dir-owner.h b/gcc/rust/util/rust-dir-owner.h
index 0134f54a428..295e9c25a8c 100644
--- a/gcc/rust/util/rust-dir-owner.h
+++ b/gcc/rust/util/rust-dir-owner.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/util/rust-dump.h b/gcc/rust/util/rust-dump.h
index 7fd0b365b9f..847f022edc8 100644
--- a/gcc/rust/util/rust-dump.h
+++ b/gcc/rust/util/rust-dump.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2021-2023 Free Software Foundation, Inc.
+// Copyright (C) 2021-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/util/rust-keyword-values.cc b/gcc/rust/util/rust-keyword-values.cc
index 9e1d2bcdef6..f21a0f96015 100644
--- a/gcc/rust/util/rust-keyword-values.cc
+++ b/gcc/rust/util/rust-keyword-values.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/util/rust-keyword-values.h b/gcc/rust/util/rust-keyword-values.h
index 01c98a2cde4..d2c68c994dc 100644
--- a/gcc/rust/util/rust-keyword-values.h
+++ b/gcc/rust/util/rust-keyword-values.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/util/rust-punycode.cc b/gcc/rust/util/rust-punycode.cc
index a9c8cbfc5fc..89476f2cc82 100644
--- a/gcc/rust/util/rust-punycode.cc
+++ b/gcc/rust/util/rust-punycode.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/util/rust-punycode.h b/gcc/rust/util/rust-punycode.h
index ffb139a5ff3..b926ad64826 100644
--- a/gcc/rust/util/rust-punycode.h
+++ b/gcc/rust/util/rust-punycode.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/util/rust-unicode-data.h b/gcc/rust/util/rust-unicode-data.h
index e07752a4f63..8a66537809c 100644
--- a/gcc/rust/util/rust-unicode-data.h
+++ b/gcc/rust/util/rust-unicode-data.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/util/rust-unicode.cc b/gcc/rust/util/rust-unicode.cc
index 6bd2db550a1..3dd1c1960d4 100644
--- a/gcc/rust/util/rust-unicode.cc
+++ b/gcc/rust/util/rust-unicode.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/gcc/rust/util/rust-unicode.h b/gcc/rust/util/rust-unicode.h
index aa7bd8a5632..5ea2efdae71 100644
--- a/gcc/rust/util/rust-unicode.h
+++ b/gcc/rust/util/rust-unicode.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2023 Free Software Foundation, Inc.
+// Copyright (C) 2020-2024 Free Software Foundation, Inc.
 
 // This file is part of GCC.
 
diff --git a/libgrust/libproc_macro/bridge.rs b/libgrust/libproc_macro/bridge.rs
index 4f33af187ea..594c2a45689 100644
--- a/libgrust/libproc_macro/bridge.rs
+++ b/libgrust/libproc_macro/bridge.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/bridge/ffistring.rs b/libgrust/libproc_macro/bridge/ffistring.rs
index 09de02a026f..b25064a9851 100644
--- a/libgrust/libproc_macro/bridge/ffistring.rs
+++ b/libgrust/libproc_macro/bridge/ffistring.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/bridge/group.rs b/libgrust/libproc_macro/bridge/group.rs
index 007c3c6b574..541722e69db 100644
--- a/libgrust/libproc_macro/bridge/group.rs
+++ b/libgrust/libproc_macro/bridge/group.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/bridge/ident.rs b/libgrust/libproc_macro/bridge/ident.rs
index 465fe3bfdb6..00924e3c08e 100644
--- a/libgrust/libproc_macro/bridge/ident.rs
+++ b/libgrust/libproc_macro/bridge/ident.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/bridge/literal.rs b/libgrust/libproc_macro/bridge/literal.rs
index 4a108cc0558..76183d70d3a 100644
--- a/libgrust/libproc_macro/bridge/literal.rs
+++ b/libgrust/libproc_macro/bridge/literal.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/bridge/punct.rs b/libgrust/libproc_macro/bridge/punct.rs
index ebe5ed401f1..2930b732342 100644
--- a/libgrust/libproc_macro/bridge/punct.rs
+++ b/libgrust/libproc_macro/bridge/punct.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/bridge/span.rs b/libgrust/libproc_macro/bridge/span.rs
index f22b4e7dffa..bc81cfe7e81 100644
--- a/libgrust/libproc_macro/bridge/span.rs
+++ b/libgrust/libproc_macro/bridge/span.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/bridge/token_stream.rs b/libgrust/libproc_macro/bridge/token_stream.rs
index 42cba6264ce..5d8382f0107 100644
--- a/libgrust/libproc_macro/bridge/token_stream.rs
+++ b/libgrust/libproc_macro/bridge/token_stream.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/group.rs b/libgrust/libproc_macro/group.rs
index 46286d566ce..0fafebb6b0c 100644
--- a/libgrust/libproc_macro/group.rs
+++ b/libgrust/libproc_macro/group.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/ident.rs b/libgrust/libproc_macro/ident.rs
index 21a3a999ead..cdbd2d38ddc 100644
--- a/libgrust/libproc_macro/ident.rs
+++ b/libgrust/libproc_macro/ident.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/lib.rs b/libgrust/libproc_macro/lib.rs
index 8b7662a8337..87017e8cfcb 100644
--- a/libgrust/libproc_macro/lib.rs
+++ b/libgrust/libproc_macro/lib.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/literal.rs b/libgrust/libproc_macro/literal.rs
index 05cc28b1af2..a22839342d9 100644
--- a/libgrust/libproc_macro/literal.rs
+++ b/libgrust/libproc_macro/literal.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/punct.rs b/libgrust/libproc_macro/punct.rs
index 40c378e10d9..b038790dafb 100644
--- a/libgrust/libproc_macro/punct.rs
+++ b/libgrust/libproc_macro/punct.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/span.rs b/libgrust/libproc_macro/span.rs
index 5ea2db85af5..d6af551102a 100644
--- a/libgrust/libproc_macro/span.rs
+++ b/libgrust/libproc_macro/span.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro/token_stream.rs b/libgrust/libproc_macro/token_stream.rs
index 4981ddebb73..1b2ff0671e2 100644
--- a/libgrust/libproc_macro/token_stream.rs
+++ b/libgrust/libproc_macro/token_stream.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/bridge.h b/libgrust/libproc_macro_internal/bridge.h
index 47eedffc4c1..df9118a3621 100644
--- a/libgrust/libproc_macro_internal/bridge.h
+++ b/libgrust/libproc_macro_internal/bridge.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/ffistring.cc b/libgrust/libproc_macro_internal/ffistring.cc
index 2de674cfcfb..ded46bc1667 100644
--- a/libgrust/libproc_macro_internal/ffistring.cc
+++ b/libgrust/libproc_macro_internal/ffistring.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/ffistring.h b/libgrust/libproc_macro_internal/ffistring.h
index c151645ee5f..e176bc29985 100644
--- a/libgrust/libproc_macro_internal/ffistring.h
+++ b/libgrust/libproc_macro_internal/ffistring.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/group.cc b/libgrust/libproc_macro_internal/group.cc
index 38730d8afd9..adfbe1d7d38 100644
--- a/libgrust/libproc_macro_internal/group.cc
+++ b/libgrust/libproc_macro_internal/group.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/group.h b/libgrust/libproc_macro_internal/group.h
index fa76d4b15a5..fadc79f92dc 100644
--- a/libgrust/libproc_macro_internal/group.h
+++ b/libgrust/libproc_macro_internal/group.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/ident.cc b/libgrust/libproc_macro_internal/ident.cc
index 221d38ec2fd..759f5623012 100644
--- a/libgrust/libproc_macro_internal/ident.cc
+++ b/libgrust/libproc_macro_internal/ident.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/ident.h b/libgrust/libproc_macro_internal/ident.h
index 66547d95585..cdc9b0d5d95 100644
--- a/libgrust/libproc_macro_internal/ident.h
+++ b/libgrust/libproc_macro_internal/ident.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/literal.cc b/libgrust/libproc_macro_internal/literal.cc
index ea09106cd62..a8d4b8f674c 100644
--- a/libgrust/libproc_macro_internal/literal.cc
+++ b/libgrust/libproc_macro_internal/literal.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/literal.h b/libgrust/libproc_macro_internal/literal.h
index 37ba0891dbe..c8579471b9d 100644
--- a/libgrust/libproc_macro_internal/literal.h
+++ b/libgrust/libproc_macro_internal/literal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/proc_macro.cc b/libgrust/libproc_macro_internal/proc_macro.cc
index 0490673b656..9ef98487fc2 100644
--- a/libgrust/libproc_macro_internal/proc_macro.cc
+++ b/libgrust/libproc_macro_internal/proc_macro.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/proc_macro.h b/libgrust/libproc_macro_internal/proc_macro.h
index 9e142ffa79f..ce9adb24734 100644
--- a/libgrust/libproc_macro_internal/proc_macro.h
+++ b/libgrust/libproc_macro_internal/proc_macro.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/punct.cc b/libgrust/libproc_macro_internal/punct.cc
index 32450cc8ea6..8aeace5f4e4 100644
--- a/libgrust/libproc_macro_internal/punct.cc
+++ b/libgrust/libproc_macro_internal/punct.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/punct.h b/libgrust/libproc_macro_internal/punct.h
index 6d0146083bf..76eb44535fb 100644
--- a/libgrust/libproc_macro_internal/punct.h
+++ b/libgrust/libproc_macro_internal/punct.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/registration.h b/libgrust/libproc_macro_internal/registration.h
index 98e7c139c27..dc4a2d3d29a 100644
--- a/libgrust/libproc_macro_internal/registration.h
+++ b/libgrust/libproc_macro_internal/registration.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/span.cc b/libgrust/libproc_macro_internal/span.cc
index 62c8c57f688..c59418e1465 100644
--- a/libgrust/libproc_macro_internal/span.cc
+++ b/libgrust/libproc_macro_internal/span.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/span.h b/libgrust/libproc_macro_internal/span.h
index 70ea9e7ea3d..362a75f11cb 100644
--- a/libgrust/libproc_macro_internal/span.h
+++ b/libgrust/libproc_macro_internal/span.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/tokenstream.cc b/libgrust/libproc_macro_internal/tokenstream.cc
index 685f28424d2..b2fd9c98b84 100644
--- a/libgrust/libproc_macro_internal/tokenstream.cc
+++ b/libgrust/libproc_macro_internal/tokenstream.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/tokenstream.h b/libgrust/libproc_macro_internal/tokenstream.h
index 0fde5ea5397..4e13ce7690d 100644
--- a/libgrust/libproc_macro_internal/tokenstream.h
+++ b/libgrust/libproc_macro_internal/tokenstream.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/tokentree.cc b/libgrust/libproc_macro_internal/tokentree.cc
index b034a8c33e2..6c15d757601 100644
--- a/libgrust/libproc_macro_internal/tokentree.cc
+++ b/libgrust/libproc_macro_internal/tokentree.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
diff --git a/libgrust/libproc_macro_internal/tokentree.h b/libgrust/libproc_macro_internal/tokentree.h
index 1a50ecf3447..fe81e03516b 100644
--- a/libgrust/libproc_macro_internal/tokentree.h
+++ b/libgrust/libproc_macro_internal/tokentree.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Free Software Foundation, Inc.
+// Copyright (C) 2023-2024 Free Software Foundation, Inc.
 //
 // This file is part of the GNU Proc Macro Library.  This library is free
 // software; you can redistribute it and/or modify it under the
-- 
2.42.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-02-21 13:16 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-21 13:15 [PATCHSET] Update Rust frontend 21/02/2024 arthur.cohen
2024-02-21 13:15 ` [COMMITTED 1/9] gccrs: Fix typo in RegionConstraints instance arthur.cohen
2024-02-21 13:15 ` [COMMITTED 2/9] gccrs: Add testcase for matches!() macro arthur.cohen
2024-02-21 13:15 ` [COMMITTED 3/9] gccrs: Fix rebinding imports arthur.cohen
2024-02-21 13:15 ` [COMMITTED 4/9] gccrs: expand: Fix formatting for "macro not found" error arthur.cohen
2024-02-21 13:15 ` [COMMITTED 5/9] gccrs: Add testcase for #[rustc_const_stable] arthur.cohen
2024-02-21 13:15 ` [COMMITTED 6/9] gccrs: add powi intrinsics arthur.cohen
2024-02-21 13:15 ` [COMMITTED 7/9] gccrs: Fix lookup of TuplePattern sub-pattern types arthur.cohen
2024-02-21 13:15 ` [COMMITTED 8/9] gccrs: Add variadic check on function params arthur.cohen
2024-02-21 13:15 ` [COMMITTED 9/9] Update copyright years arthur.cohen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).