diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-02-23 10:05:13 +0100 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-02-23 14:36:11 +0100 |
commit | 48b3fe622e9a582b076c6f4b19b5e8b69891ac31 (patch) | |
tree | f7a3fd3afb0c2e2b2678d80dcd742da23c1b8f9a /gcc/rust/util/rust-hir-map.cc | |
parent | 0b46175fb8f807b4a07918001f0490d0f3fc0ba5 (diff) | |
download | gcc-48b3fe622e9a582b076c6f4b19b5e8b69891ac31.zip gcc-48b3fe622e9a582b076c6f4b19b5e8b69891ac31.tar.gz gcc-48b3fe622e9a582b076c6f4b19b5e8b69891ac31.tar.bz2 |
macros: Add optional builtin transcribers to MacroRulesDefinition
Diffstat (limited to 'gcc/rust/util/rust-hir-map.cc')
-rw-r--r-- | gcc/rust/util/rust-hir-map.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc index 1348e29..1c0e8fc 100644 --- a/gcc/rust/util/rust-hir-map.cc +++ b/gcc/rust/util/rust-hir-map.cc @@ -19,6 +19,7 @@ #include "rust-hir-map.h" #include "rust-ast-full.h" #include "rust-hir-full.h" +#include "rust-macro-builtins.h" namespace Rust { namespace Analysis { @@ -741,6 +742,16 @@ Mappings::iterate_trait_items ( void Mappings::insert_macro_def (AST::MacroRulesDefinition *macro) { + static std::map<std::string, std::function<AST::ASTFragment ( + Location, AST::MacroInvocData &)>> + builtin_macros = { + {"assert", MacroBuiltin::assert}, + }; + + auto builtin = builtin_macros.find (macro->get_rule_name ()); + if (builtin != builtin_macros.end ()) + macro->set_builtin_transcriber (builtin->second); + auto it = macroMappings.find (macro->get_node_id ()); rust_assert (it == macroMappings.end ()); |