[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