https://gcc.gnu.org/g:fe3dd57b568e333656cb332f1a8b3c0dea0df976
commit r15-8194-gfe3dd57b568e333656cb332f1a8b3c0dea0df976 Author: jjasmine <tanghocle...@gmail.com> Date: Tue Jun 4 19:34:58 2024 -0700 gccrs: Scaffolding ast visitor for InlineAsm gcc/rust/ChangeLog: * ast/rust-ast-visitor.h: Scaffolding ast visitor for InlineAsm * ast/rust-ast.cc (InlineAsm::accept_vis): Likewise. * ast/rust-expr.h: Likewise. Diff: --- gcc/rust/ast/rust-ast-visitor.h | 2 ++ gcc/rust/ast/rust-ast.cc | 7 +++++++ gcc/rust/ast/rust-expr.h | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/rust/ast/rust-ast-visitor.h b/gcc/rust/ast/rust-ast-visitor.h index 1d96304f1880..6c64d7194462 100644 --- a/gcc/rust/ast/rust-ast-visitor.h +++ b/gcc/rust/ast/rust-ast-visitor.h @@ -23,6 +23,7 @@ // full include not required - only forward decls #include "rust-ast-full-decls.h" #include "rust-ast.h" +#include "rust-expr.h" #include "rust-item.h" #include "rust-system.h" @@ -128,6 +129,7 @@ public: virtual void visit (MatchExpr &expr) = 0; virtual void visit (AwaitExpr &expr) = 0; virtual void visit (AsyncBlockExpr &expr) = 0; + virtual void visit (InlineAsm &expr){}; // rust-item.h virtual void visit (TypeParam ¶m) = 0; diff --git a/gcc/rust/ast/rust-ast.cc b/gcc/rust/ast/rust-ast.cc index 38cb7cfdc64d..2ff2e1330373 100644 --- a/gcc/rust/ast/rust-ast.cc +++ b/gcc/rust/ast/rust-ast.cc @@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see #include "optional.h" #include "rust-builtin-ast-nodes.h" #include "rust-common.h" +#include "rust-expr.h" #include "rust-system.h" #include "rust-ast-full.h" #include "rust-diagnostics.h" @@ -4655,6 +4656,12 @@ AsyncBlockExpr::accept_vis (ASTVisitor &vis) vis.visit (*this); } +void +InlineAsm::accept_vis (ASTVisitor &vis) +{ + vis.visit (*this); +} + void TypeParam::accept_vis (ASTVisitor &vis) { diff --git a/gcc/rust/ast/rust-expr.h b/gcc/rust/ast/rust-expr.h index cc8c6ea03500..5f60ec79b583 100644 --- a/gcc/rust/ast/rust-expr.h +++ b/gcc/rust/ast/rust-expr.h @@ -4980,8 +4980,8 @@ public: InlineAsm (location_t locus, bool is_global_asm) : locus (locus), is_global_asm (is_global_asm) {} - void accept_vis (ASTVisitor &vis) override{}; + void accept_vis (ASTVisitor &vis) override; std::string as_string () const override { return "InlineAsm AST Node"; } location_t get_locus () const override { return locus; }