From: Pierre-Emmanuel Patry Date: Tue, 29 Aug 2023 14:49:31 +0000 (+0200) Subject: gccrs: Add proc macro definition insertion X-Git-Tag: basepoints/gcc-15~2141 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e6cd1103050c48242923ae6f862437110331beb9;p=thirdparty%2Fgcc.git gccrs: Add proc macro definition insertion Insert proc macro definition from extern crates. gcc/rust/ChangeLog: * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Add proc macro definition insertion. Signed-off-by: Pierre-Emmanuel Patry --- diff --git a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc index 33a20cc64c0b..f24c91de9221 100644 --- a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc +++ b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc @@ -104,12 +104,25 @@ TopLevel::visit (AST::ExternCrate &crate) = Analysis::Mappings::get ()->lookup_derive_proc_macros (num); auto sub_visitor = [&] () { + // TODO: Find a way to keep this part clean without the double dispatch. if (derive_macros.has_value ()) - insert_macros (derive_macros.value (), ctx); + { + insert_macros (derive_macros.value (), ctx); + for (auto ¯o : derive_macros.value ()) + Analysis::Mappings::get ()->insert_derive_proc_macro_def (macro); + } if (attribute_macros.has_value ()) - insert_macros (attribute_macros.value (), ctx); + { + insert_macros (attribute_macros.value (), ctx); + for (auto ¯o : attribute_macros.value ()) + Analysis::Mappings::get ()->insert_attribute_proc_macro_def (macro); + } if (bang_macros.has_value ()) - insert_macros (bang_macros.value (), ctx); + { + insert_macros (bang_macros.value (), ctx); + for (auto ¯o : bang_macros.value ()) + Analysis::Mappings::get ()->insert_bang_proc_macro_def (macro); + } }; if (crate.has_as_clause ())