aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorjjasmine <tanghocle456@gmail.com>2024-02-23 13:06:14 -0800
committerArthur Cohen <arthur.cohen@embecosm.com>2024-08-01 13:11:29 +0200
commit5d30562dcfa59d86210976c92d187f0d86f64be4 (patch)
treec1da003dada82a9d9939cb779f8a70813f0f4dbb /gcc
parent53ccef0387e2c55016132b8cc600176f8ac9abef (diff)
downloadgcc-5d30562dcfa59d86210976c92d187f0d86f64be4.zip
gcc-5d30562dcfa59d86210976c92d187f0d86f64be4.tar.gz
gcc-5d30562dcfa59d86210976c92d187f0d86f64be4.tar.bz2
gccrs: Fix small FixMe task in rust macro builtins
gcc/rust/ChangeLog: * expand/rust-macro-builtins.cc: Change BuiltinMacro in builtin_macro_from_string to tl::optional<> * expand/rust-macro-builtins.h (enum class): Change BuiltinMacro in builtin_macro_from_string to tl::optional<> * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Resolved wrong type dependency of builtin_macro_from_string Signed-off-by: jjasmine <tanghocle456@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/expand/rust-macro-builtins.cc3
-rw-r--r--gcc/rust/expand/rust-macro-builtins.h2
-rw-r--r--gcc/rust/resolve/rust-early-name-resolver.cc2
3 files changed, 3 insertions, 4 deletions
diff --git a/gcc/rust/expand/rust-macro-builtins.cc b/gcc/rust/expand/rust-macro-builtins.cc
index 2af05a5..f103759a 100644
--- a/gcc/rust/expand/rust-macro-builtins.cc
+++ b/gcc/rust/expand/rust-macro-builtins.cc
@@ -126,8 +126,7 @@ std::unordered_map<std::string, AST::MacroTranscriberFunc>
{"Hash", MacroBuiltin::proc_macro_builtin},
};
-// FIXME: This should return an tl::optional
-BuiltinMacro
+tl::optional<BuiltinMacro>
builtin_macro_from_string (const std::string &identifier)
{
auto macro = MacroBuiltin::builtins.lookup (identifier);
diff --git a/gcc/rust/expand/rust-macro-builtins.h b/gcc/rust/expand/rust-macro-builtins.h
index f9ab3fc..1d6b30b 100644
--- a/gcc/rust/expand/rust-macro-builtins.h
+++ b/gcc/rust/expand/rust-macro-builtins.h
@@ -75,7 +75,7 @@ enum class BuiltinMacro
Hash,
};
-BuiltinMacro
+tl::optional<BuiltinMacro>
builtin_macro_from_string (const std::string &identifier);
/**
diff --git a/gcc/rust/resolve/rust-early-name-resolver.cc b/gcc/rust/resolve/rust-early-name-resolver.cc
index 422dd92..d70f9ca 100644
--- a/gcc/rust/resolve/rust-early-name-resolver.cc
+++ b/gcc/rust/resolve/rust-early-name-resolver.cc
@@ -497,7 +497,7 @@ EarlyNameResolver::visit (AST::MacroInvocation &invoc)
{
auto builtin_kind
= builtin_macro_from_string (rules_def->get_rule_name ().as_string ());
- invoc.map_to_builtin (builtin_kind);
+ invoc.map_to_builtin (builtin_kind.value ());
}
auto attributes = rules_def->get_outer_attrs ();