]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix small FixMe task in rust macro builtins
authorjjasmine <tanghocle456@gmail.com>
Fri, 23 Feb 2024 21:06:14 +0000 (13:06 -0800)
committerCohenArthur <arthur.cohen@embecosm.com>
Tue, 27 Feb 2024 11:57:50 +0000 (11:57 +0000)
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>
gcc/rust/expand/rust-macro-builtins.cc
gcc/rust/expand/rust-macro-builtins.h
gcc/rust/resolve/rust-early-name-resolver.cc

index 2af05a5e3777741f8e965952f91849006388242d..f103759acdd7c91b55e981d05e8281db85fc4c75 100644 (file)
@@ -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);
index f9ab3fc3698e4fa7761b9a8add8eaa462a3bae73..1d6b30b5933234e2c8669228fb2496c5b3a5c149 100644 (file)
@@ -75,7 +75,7 @@ enum class BuiltinMacro
   Hash,
 };
 
-BuiltinMacro
+tl::optional<BuiltinMacro>
 builtin_macro_from_string (const std::string &identifier);
 
 /**
index 422dd92e4620710d33ca3d1c0df7690ee7cf230f..d70f9ca9806e31894b713f079f3dc80f5d689aef 100644 (file)
@@ -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 ();