From 6708d35b95512bc67fd43cf82b521a34b9d4ad89 Mon Sep 17 00:00:00 2001 From: badumbatish Date: Wed, 16 Oct 2024 22:41:47 -0700 Subject: [PATCH] Fix compiler error on ast wrong implicit construct push_back gcc/rust/ChangeLog: * expand/rust-macro-builtins-asm.cc (parse_reg_operand_in): Fix compiler error on ast wrong implicit construct push_back --- gcc/rust/expand/rust-macro-builtins-asm.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/rust/expand/rust-macro-builtins-asm.cc b/gcc/rust/expand/rust-macro-builtins-asm.cc index 2b86b81b4d5..dc319a008e0 100644 --- a/gcc/rust/expand/rust-macro-builtins-asm.cc +++ b/gcc/rust/expand/rust-macro-builtins-asm.cc @@ -314,6 +314,7 @@ parse_reg_operand_in (InlineAsmContext inline_asm_ctx) // For the keyword IN, currently we count it as a seperate keyword called // Rust::IN search for #define RS_TOKEN_LIST in code base. auto &parser = inline_asm_ctx.parser; + location_t locus = parser.peek_current_token ()->get_locus (); if (!inline_asm_ctx.is_global_asm () && parser.skip_token (IN)) { auto reg = parse_reg (inline_asm_ctx); @@ -331,7 +332,7 @@ parse_reg_operand_in (InlineAsmContext inline_asm_ctx) // TODO: When we've succesfully parse an expr, remember to clone_expr() // instead of nullptr struct AST::InlineAsmOperand::In in (reg, std::move (expr)); - inline_asm_ctx.inline_asm.operands.push_back (in); + inline_asm_ctx.inline_asm.operands.emplace_back (in, locus); return inline_asm_ctx; } return tl::unexpected (NONCOMMITED);