aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/ast/rust-expr.h
diff options
context:
space:
mode:
authorbadumbatish <tanghocle456@gmail.com>2024-07-23 22:17:12 -0700
committerArthur Cohen <arthur.cohen@embecosm.com>2025-03-19 15:32:01 +0100
commitd2c9afb7bc8278bdf946599f58da18c76d3d1d2f (patch)
treeac0dd47e1c7cac2fc23431635899e7e40adfa641 /gcc/rust/ast/rust-expr.h
parent86d5412d85b907fd63b5c86817e35e506ea3f7f0 (diff)
downloadgcc-d2c9afb7bc8278bdf946599f58da18c76d3d1d2f.zip
gcc-d2c9afb7bc8278bdf946599f58da18c76d3d1d2f.tar.gz
gcc-d2c9afb7bc8278bdf946599f58da18c76d3d1d2f.tar.bz2
gccrs: Fix the parser's operand and flags storage
gcc/rust/ChangeLog: * ast/rust-expr.h (struct InlineAsmOperand): Add construction for register_type * expand/rust-macro-builtins-asm.cc (parse_reg_operand): Fix parsing logic & reassignment logic (parse_reg_operand_in): Fix parsing (parse_reg_operand_out): Fix parsing (parse_reg_operand_inout): Fix parsing (parse_reg_operand_unexpected): Remove rust_unreachable() (parse_asm_arg): Fix parsing logic * expand/rust-macro-builtins-asm.h: Add = operator overloading gcc/testsuite/ChangeLog: * rust/compile/inline_asm_illegal_operands.rs: Test now passing * rust/compile/inline_asm_parse_operand.rs: Remove _, not supported right now
Diffstat (limited to 'gcc/rust/ast/rust-expr.h')
-rw-r--r--gcc/rust/ast/rust-expr.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/rust/ast/rust-expr.h b/gcc/rust/ast/rust-expr.h
index 9477bf0..8a3baf7 100644
--- a/gcc/rust/ast/rust-expr.h
+++ b/gcc/rust/ast/rust-expr.h
@@ -4964,8 +4964,9 @@ struct InlineAsmOperand
InlineAsmOperand () {}
InlineAsmOperand (const InlineAsmOperand &other)
- : in (other.in), out (other.out), in_out (other.in_out),
- split_in_out (other.split_in_out), cnst (other.cnst), sym (other.sym)
+ : register_type (other.register_type), in (other.in), out (other.out),
+ in_out (other.in_out), split_in_out (other.split_in_out),
+ cnst (other.cnst), sym (other.sym)
{}
void set_in (const tl::optional<struct In> &reg)