From: Pierre-Emmanuel Patry <pierre-emmanuel.pa...@embecosm.com>

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.pa...@embecosm.com>
---
 gcc/rust/expand/rust-macro-builtins-asm.cc | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gcc/rust/expand/rust-macro-builtins-asm.cc 
b/gcc/rust/expand/rust-macro-builtins-asm.cc
index 850c8ddb753..7b2cf708445 100644
--- a/gcc/rust/expand/rust-macro-builtins-asm.cc
+++ b/gcc/rust/expand/rust-macro-builtins-asm.cc
@@ -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");
-- 
2.49.0

Reply via email to