aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-06-15 13:58:08 +0200
committerP-E-P <32375388+P-E-P@users.noreply.github.com>2023-07-21 09:06:09 +0000
commit6b4f24c1ca6aabe95b24f3060503d419824ec78b (patch)
tree2efc8d0fc5acb943f8dda030fb8fb56f97036eb2 /gcc
parentd2e353637897b091bed59d6bb98c1e5f98022a6c (diff)
downloadgcc-6b4f24c1ca6aabe95b24f3060503d419824ec78b.zip
gcc-6b4f24c1ca6aabe95b24f3060503d419824ec78b.tar.gz
gcc-6b4f24c1ca6aabe95b24f3060503d419824ec78b.tar.bz2
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 b18860b..bbb9945 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 de3c37a..17a3f70 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 47ec515..72b82f6 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)
{