]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Add indexed positional argument support in asm
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Wed, 23 Jul 2025 12:40:46 +0000 (14:40 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 5 Aug 2025 14:36:58 +0000 (16:36 +0200)
gcc/rust/ChangeLog:

* expand/rust-macro-builtins-asm.cc (expand_inline_asm_strings): Handle
transformation for indexed positional arguments.

Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
gcc/rust/expand/rust-macro-builtins-asm.cc

index 850c8ddb753bfff732ee020e8e9aa2b60c03ff63..7b2cf7084457eb92c9c0308c88eecf8a857d44ff 100644 (file)
@@ -819,6 +819,11 @@ expand_inline_asm_strings (InlineAsmContext inline_asm_ctx)
                  }
                  break;
                case Fmt::ffi::Position::Tag::ArgumentIs:
+                 {
+                   auto idx = next_argument.position.argument_is._0;
+                   transformed_template_str += "%" + std::to_string (idx);
+                   break;
+                 }
                case Fmt::ffi::Position::Tag::ArgumentNamed:
                  rust_sorry_at (inline_asm.get_locus (),
                                 "unhandled argument position specifier");