]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix compiler error on ast wrong implicit construct push_back
authorbadumbatish <tanghocle456@gmail.com>
Thu, 17 Oct 2024 05:41:47 +0000 (22:41 -0700)
committerP-E-P <32375388+P-E-P@users.noreply.github.com>
Thu, 17 Oct 2024 08:38:08 +0000 (08:38 +0000)
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

index 2b86b81b4d550e3d9de9edb6cd5467719dcdb53b..dc319a008e0aa001db6dbc4a1fc24ff359cdc02f 100644 (file)
@@ -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<InlineAsmParseError> (NONCOMMITED);