]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Remove global_asm and non_global_asm handler
authorjjasmine <tanghocle456@gmail.com>
Fri, 24 May 2024 23:01:13 +0000 (16:01 -0700)
committerCohenArthur <arthur.cohen@embecosm.com>
Thu, 13 Jun 2024 15:31:07 +0000 (15:31 +0000)
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.

gcc/rust/expand/rust-macro-builtins-asm.cc
gcc/rust/expand/rust-macro-builtins.cc
gcc/rust/expand/rust-macro-builtins.h

index 5734a4176c8d2e794c1800202f753e371be39cc2..268019c2da2b99e681d80c4622747ef625b46750 100644 (file)
@@ -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);
 }
 
index dc2482acf6ca18862acf6a88401747b033d347e7..617202f435499db6dfa7ab707972825bda7a74a3 100644 (file)
@@ -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},
index dbc838bf97fe3bc4c6704946e3875ddcc89fcbf0..d9873c712099afb4d67305acbad2f3e24dafc0b5 100644 (file)
@@ -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,