aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/expand/rust-macro-builtins.cc
diff options
context:
space:
mode:
authorArthur Cohen <arthur.cohen@embecosm.com>2024-06-18 13:47:57 +0200
committerCohenArthur <arthur.cohen@embecosm.com>2024-06-18 12:24:32 +0000
commit7d22e900b069c5acdff8272da89b959c50dcb666 (patch)
treef8fe54ff3039a6171bc3100bfeff287ae8052e3b /gcc/rust/expand/rust-macro-builtins.cc
parentfb906a41a4e911f7f0d7b506347286c7d942995e (diff)
downloadgcc-7d22e900b069c5acdff8272da89b959c50dcb666.zip
gcc-7d22e900b069c5acdff8272da89b959c50dcb666.tar.gz
gcc-7d22e900b069c5acdff8272da89b959c50dcb666.tar.bz2
expand: Switch semicolon boolean to an enum instead.
gcc/rust/ChangeLog: * ast/rust-ast-fragment.h (enum class): Add InvocKind and AsmKind enums. * ast/rust-macro.h: Switch semicolon boolean to InvocKind enum. * expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise. * expand/rust-macro-builtins-asm.cc (MacroBuiltin::asm_handler): Likewise. (parse_asm): Likewise. * expand/rust-macro-builtins-asm.h (parse_asm): Likewise. * expand/rust-macro-builtins-format-args.cc (MacroBuiltin::format_args_handler): Likewise. * expand/rust-macro-builtins-include.cc (MacroBuiltin::include_bytes_handler): Likewise. (MacroBuiltin::include_str_handler): Likewise. (MacroBuiltin::include_handler): Likewise. * expand/rust-macro-builtins-location.cc (MacroBuiltin::file_handler): Likewise. (MacroBuiltin::column_handler): Likewise. (MacroBuiltin::line_handler): Likewise. * expand/rust-macro-builtins-log-debug.cc (MacroBuiltin::assert_handler): Likewise. * expand/rust-macro-builtins-utility.cc (MacroBuiltin::compile_error_handler): Likewise. (MacroBuiltin::concat_handler): Likewise. (MacroBuiltin::env_handler): Likewise. (MacroBuiltin::cfg_handler): Likewise. (MacroBuiltin::stringify_handler): Likewise. * expand/rust-macro-builtins.cc (format_args_maker): Likewise. (enum class): Likewise. (inline_asm_maker): Likewise. (MacroBuiltin::sorry): Likewise. (MacroBuiltin::proc_macro_builtin): Likewise. * expand/rust-macro-builtins.h: Likewise. * expand/rust-macro-expand.cc (MacroExpander::expand_decl_macro): Likewise. (MacroExpander::expand_eager_invocations): Likewise. (MacroExpander::expand_invoc): Likewise. * expand/rust-macro-expand.h (struct MacroExpander): Likewise.
Diffstat (limited to 'gcc/rust/expand/rust-macro-builtins.cc')
-rw-r--r--gcc/rust/expand/rust-macro-builtins.cc30
1 files changed, 12 insertions, 18 deletions
diff --git a/gcc/rust/expand/rust-macro-builtins.cc b/gcc/rust/expand/rust-macro-builtins.cc
index 567f4db..07a1f3c 100644
--- a/gcc/rust/expand/rust-macro-builtins.cc
+++ b/gcc/rust/expand/rust-macro-builtins.cc
@@ -87,26 +87,19 @@ const BiMap<std::string, BuiltinMacro> MacroBuiltin::builtins = {{
AST::MacroTranscriberFunc
format_args_maker (AST::FormatArgs::Newline nl)
{
- return [nl] (location_t loc, AST::MacroInvocData &invoc, bool semicolon) {
+ return [nl] (location_t loc, AST::MacroInvocData &invoc,
+ AST::InvocKind semicolon) {
return MacroBuiltin::format_args_handler (loc, invoc, semicolon, nl);
};
}
-enum class isGlobalAsm
-{
- Global,
- Inline,
-};
-
AST::MacroTranscriberFunc
-inline_asm_maker (isGlobalAsm is_global_asm)
+inline_asm_maker (AST::AsmKind global_asm)
{
- bool global_asm = is_global_asm == isGlobalAsm::Global ? true : false;
-
- return
- [global_asm] (location_t loc, AST::MacroInvocData &invoc, bool semicolon) {
- return MacroBuiltin::asm_handler (loc, invoc, semicolon, global_asm);
- };
+ return [global_asm] (location_t loc, AST::MacroInvocData &invoc,
+ AST::InvocKind semicolon) {
+ return MacroBuiltin::asm_handler (loc, invoc, semicolon, global_asm);
+ };
}
std::unordered_map<std::string, AST::MacroTranscriberFunc>
@@ -125,8 +118,8 @@ std::unordered_map<std::string, AST::MacroTranscriberFunc>
{"include", MacroBuiltin::include_handler},
{"format_args", format_args_maker (AST::FormatArgs::Newline::No)},
{"format_args_nl", format_args_maker (AST::FormatArgs::Newline::Yes)},
- {"asm", inline_asm_maker (isGlobalAsm::Inline)},
- {"global_asm", inline_asm_maker (isGlobalAsm::Global)},
+ {"asm", inline_asm_maker (AST::AsmKind::Inline)},
+ {"global_asm", inline_asm_maker (AST::AsmKind::Global)},
/* Unimplemented macro builtins */
{"option_env", MacroBuiltin::sorry},
{"concat_idents", MacroBuiltin::sorry},
@@ -169,7 +162,7 @@ builtin_macro_from_string (const std::string &identifier)
tl::optional<AST::Fragment>
MacroBuiltin::sorry (location_t invoc_locus, AST::MacroInvocData &invoc,
- bool semicolon)
+ AST::InvocKind semicolon)
{
rust_sorry_at (invoc_locus, "unimplemented builtin macro: %qs",
invoc.get_path ().as_string ().c_str ());
@@ -179,7 +172,8 @@ MacroBuiltin::sorry (location_t invoc_locus, AST::MacroInvocData &invoc,
tl::optional<AST::Fragment>
MacroBuiltin::proc_macro_builtin (location_t invoc_locus,
- AST::MacroInvocData &invoc, bool semicolon)
+ AST::MacroInvocData &invoc,
+ AST::InvocKind semicolon)
{
rust_error_at (invoc_locus, "cannot invoke derive macro: %qs",
invoc.get_path ().as_string ().c_str ());