aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorjjasmine <tanghocle456@gmail.com>2024-05-24 16:01:13 -0700
committerArthur Cohen <arthur.cohen@embecosm.com>2025-03-17 16:35:41 +0100
commitc3d566ec7b3ebf68bb44e87e6e8bc57340980e70 (patch)
tree51c67c217c288828408d2b4cc667f5c297a63c84 /gcc
parentbcd7de43808fb4bc5f761dd88bd84f69b029c7c0 (diff)
downloadgcc-c3d566ec7b3ebf68bb44e87e6e8bc57340980e70.zip
gcc-c3d566ec7b3ebf68bb44e87e6e8bc57340980e70.tar.gz
gcc-c3d566ec7b3ebf68bb44e87e6e8bc57340980e70.tar.bz2
gccrs: Remove global_asm and non_global_asm handler
gcc/rust/ChangeLog: * expand/rust-macro-builtins-asm.cc (MacroBuiltin::global_asm_handler): Remove global_asm and non_global_asm handler (MacroBuiltin::nonglobal_asm_handler): Likewise. (MacroBuiltin::asm_handler): Likewise. * expand/rust-macro-builtins.cc (enum class): Likewise. (inline_asm_maker): Likewise. * expand/rust-macro-builtins.h: Likewise.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/expand/rust-macro-builtins-asm.cc15
-rw-r--r--gcc/rust/expand/rust-macro-builtins.cc20
-rw-r--r--gcc/rust/expand/rust-macro-builtins.h8
3 files changed, 23 insertions, 20 deletions
diff --git a/gcc/rust/expand/rust-macro-builtins-asm.cc b/gcc/rust/expand/rust-macro-builtins-asm.cc
index 1bfc6e9..8c2b88c 100644
--- a/gcc/rust/expand/rust-macro-builtins-asm.cc
+++ b/gcc/rust/expand/rust-macro-builtins-asm.cc
@@ -307,20 +307,9 @@ parse_format_string (Parser<MacroInvocLexer> &parser, TokenId last_token_id)
}
tl::optional<AST::Fragment>
-MacroBuiltin::global_asm_handler (location_t invoc_locus,
- AST::MacroInvocData &invoc)
+MacroBuiltin::asm_handler (location_t invoc_locus, AST::MacroInvocData &invoc,
+ bool is_global_asm)
{
- // Just to clarify the code
- bool is_global_asm = true;
- return parse_asm (invoc_locus, invoc, is_global_asm);
-}
-
-tl::optional<AST::Fragment>
-MacroBuiltin::nonglobal_asm_handler (location_t invoc_locus,
- AST::MacroInvocData &invoc)
-{
- // Just to clarify the code
- bool is_global_asm = false;
return parse_asm (invoc_locus, invoc, is_global_asm);
}
diff --git a/gcc/rust/expand/rust-macro-builtins.cc b/gcc/rust/expand/rust-macro-builtins.cc
index e4144d1..7940f33 100644
--- a/gcc/rust/expand/rust-macro-builtins.cc
+++ b/gcc/rust/expand/rust-macro-builtins.cc
@@ -92,6 +92,22 @@ format_args_maker (AST::FormatArgs::Newline nl)
};
}
+enum class isGlobalAsm
+{
+ Yes,
+ No,
+};
+
+AST::MacroTranscriberFunc
+inline_asm_maker (isGlobalAsm is_global_asm)
+{
+ bool global_asm = is_global_asm == isGlobalAsm::Yes ? true : false;
+
+ return [global_asm] (location_t loc, AST::MacroInvocData &invoc) {
+ return MacroBuiltin::asm_handler (loc, invoc, global_asm);
+ };
+}
+
std::unordered_map<std::string, AST::MacroTranscriberFunc>
MacroBuiltin::builtin_transcribers = {
{"assert", MacroBuiltin::assert_handler},
@@ -108,8 +124,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", MacroBuiltin::nonglobal_asm_handler},
- {"global_asm", MacroBuiltin::global_asm_handler},
+ {"asm", inline_asm_maker (isGlobalAsm::No)},
+ {"global_asm", inline_asm_maker (isGlobalAsm::Yes)},
/* Unimplemented macro builtins */
{"option_env", MacroBuiltin::sorry},
{"concat_idents", MacroBuiltin::sorry},
diff --git a/gcc/rust/expand/rust-macro-builtins.h b/gcc/rust/expand/rust-macro-builtins.h
index 10377e9..6db0b7a 100644
--- a/gcc/rust/expand/rust-macro-builtins.h
+++ b/gcc/rust/expand/rust-macro-builtins.h
@@ -159,11 +159,9 @@ public:
static tl::optional<AST::Fragment> line_handler (location_t invoc_locus,
AST::MacroInvocData &invoc);
- static tl::optional<AST::Fragment>
- nonglobal_asm_handler (location_t invoc_locus, AST::MacroInvocData &invoc);
-
- static tl::optional<AST::Fragment>
- global_asm_handler (location_t invoc_locus, AST::MacroInvocData &invoc);
+ static tl::optional<AST::Fragment> asm_handler (location_t invoc_locus,
+ AST::MacroInvocData &invoc,
+ bool is_global_asm);
static tl::optional<AST::Fragment>
format_args_handler (location_t invoc_locus, AST::MacroInvocData &invoc,