[gcc r14-7815] gccrs: import: Store procedural macros in extern crate

Arthur Cohen cohenarthur@gcc.gnu.org
Tue Jan 16 18:00:56 GMT 2024


https://gcc.gnu.org/g:cfb98788f0afd404dcc6d675c8b8971a8a6b1603

commit r14-7815-gcfb98788f0afd404dcc6d675c8b8971a8a6b1603
Author: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Date:   Thu Jun 15 13:58:08 2023 +0200

    gccrs: import: Store procedural macros in extern crate
    
    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>

Diff:
---
 gcc/rust/metadata/rust-extern-crate.cc | 5 ++++-
 gcc/rust/metadata/rust-extern-crate.h  | 4 +++-
 gcc/rust/rust-session-manager.cc       | 2 +-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/gcc/rust/metadata/rust-extern-crate.cc b/gcc/rust/metadata/rust-extern-crate.cc
index be4f3938142..3aaf6b4206a 100644
--- a/gcc/rust/metadata/rust-extern-crate.cc
+++ b/gcc/rust/metadata/rust-extern-crate.cc
@@ -25,7 +25,10 @@
 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 () {}
 
diff --git a/gcc/rust/metadata/rust-extern-crate.h b/gcc/rust/metadata/rust-extern-crate.h
index 31dbbf84996..cf7eadcb7eb 100644
--- a/gcc/rust/metadata/rust-extern-crate.h
+++ b/gcc/rust/metadata/rust-extern-crate.h
@@ -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;
diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc
index 9806cfcb268..d67e884da30 100644
--- a/gcc/rust/rust-session-manager.cc
+++ b/gcc/rust/rust-session-manager.cc
@@ -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)
     {


More information about the Gcc-cvs mailing list