aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-06-15 13:58:08 +0200
committerArthur Cohen <arthur.cohen@embecosm.com>2024-01-16 18:55:58 +0100
commitcfb98788f0afd404dcc6d675c8b8971a8a6b1603 (patch)
tree015bae61292e058a1f3b8095d11606c191f65d6e /gcc
parentd31b401c8cd72a1c81c9be489a1f4f54bd6850dc (diff)
downloadgcc-cfb98788f0afd404dcc6d675c8b8971a8a6b1603.zip
gcc-cfb98788f0afd404dcc6d675c8b8971a8a6b1603.tar.gz
gcc-cfb98788f0afd404dcc6d675c8b8971a8a6b1603.tar.bz2
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>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/metadata/rust-extern-crate.cc5
-rw-r--r--gcc/rust/metadata/rust-extern-crate.h4
-rw-r--r--gcc/rust/rust-session-manager.cc2
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 be4f393..3aaf6b4 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 31dbbf8..cf7eadc 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 9806cfc..d67e884 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)
{