]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: import: Store procedural macros in extern crate
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Thu, 15 Jun 2023 11:58:08 +0000 (13:58 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 16 Jan 2024 17:55:58 +0000 (18:55 +0100)
Store procedural macro data in extern crate node.

gcc/rust/ChangeLog:

* 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.

Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
gcc/rust/metadata/rust-extern-crate.cc
gcc/rust/metadata/rust-extern-crate.h
gcc/rust/rust-session-manager.cc

index be4f3938142056a076af431940f41994073f4df5..3aaf6b4206ae964854962f9c9fd8f91ac4642879 100644 (file)
 namespace Rust {
 namespace Imports {
 
-ExternCrate::ExternCrate (Import::Stream &stream) : import_stream (stream) {}
+ExternCrate::ExternCrate (Import::Stream &stream,
+                         std::vector<ProcMacro::Procmacro> macros)
+  : import_stream (stream), proc_macros (macros)
+{}
 
 ExternCrate::~ExternCrate () {}
 
index 31dbbf849960b6566e2fdc299294fac11b96ffef..cf7eadcb7eb72ada036dfd05316dbb63842eae3e 100644 (file)
@@ -28,7 +28,8 @@ namespace Imports {
 class ExternCrate
 {
 public:
-  ExternCrate (Import::Stream &stream);
+  ExternCrate (Import::Stream &stream,
+              std::vector<ProcMacro::Procmacro> macros);
   ~ExternCrate ();
 
   bool ok () const;
@@ -44,6 +45,7 @@ public:
 
 private:
   Import::Stream &import_stream;
+  std::vector<ProcMacro::Procmacro> proc_macros;
 
   std::string crate_name;
   std::string metadata_buffer;
index 9806cfcb268f7bd7a36bb033b851026deb99c331..d67e884da30f537b378f494ab507c8ca1fb362d3 100644 (file)
@@ -996,7 +996,7 @@ Session::load_extern_crate (const std::string &crate_name, location_t locus)
       return UNKNOWN_NODEID;
     }
 
-  Imports::ExternCrate extern_crate (*s.first);
+  Imports::ExternCrate extern_crate (*s.first, s.second);
   bool ok = extern_crate.load (locus);
   if (!ok)
     {