https://gcc.gnu.org/g:75a24412545f6bd04547948cd0bd353ce912e5c5

commit r16-2961-g75a24412545f6bd04547948cd0bd353ce912e5c5
Author: Pierre-Emmanuel Patry <pierre-emmanuel.pa...@embecosm.com>
Date:   Wed Jul 23 14:40:46 2025 +0200

    gccrs: Add indexed positional argument support in asm
    
    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>

Diff:
---
 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 850c8ddb753b..7b2cf7084457 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");

Reply via email to