From: Pierre-Emmanuel Patry Date: Thu, 15 Jun 2023 11:58:08 +0000 (+0200) Subject: gccrs: import: Store procedural macros in extern crate X-Git-Tag: basepoints/gcc-15~2324 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cfb98788f0afd404dcc6d675c8b8971a8a6b1603;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/rust/metadata/rust-extern-crate.cc b/gcc/rust/metadata/rust-extern-crate.cc index be4f39381420..3aaf6b4206ae 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 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 31dbbf849960..cf7eadcb7eb7 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 macros); ~ExternCrate (); bool ok () const; @@ -44,6 +45,7 @@ public: private: Import::Stream &import_stream; + std::vector 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 9806cfcb268f..d67e884da30f 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) {