https://gcc.gnu.org/g:ba440238991674de23e51de786010a6f52084c25

commit ba440238991674de23e51de786010a6f52084c25
Author: jjasmine <tanghocle...@gmail.com>
Date:   Tue Jun 4 20:17:23 2024 -0700

    Scaffolding HIRFullVisitor for inline asm
    
    gcc/rust/ChangeLog:
    
            * ast/rust-ast-visitor.h:
            Scaffolding HIRFullVisitor for inline asm
            * ast/rust-ast.cc (InlineAsm::accept_vis): Likewise.
            * hir/tree/rust-hir-visitor.h (RUST_HIR_VISITOR_H): Likewise.
            * hir/tree/rust-hir.cc (InlineAsm::accept_vis): Likewise.

Diff:
---
 gcc/rust/ast/rust-ast-visitor.h      | 2 +-
 gcc/rust/ast/rust-ast.cc             | 1 +
 gcc/rust/hir/tree/rust-hir-visitor.h | 2 ++
 gcc/rust/hir/tree/rust-hir.cc        | 9 +++++++--
 4 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/gcc/rust/ast/rust-ast-visitor.h b/gcc/rust/ast/rust-ast-visitor.h
index 6a2bb7a8aff6..fc807db15585 100644
--- a/gcc/rust/ast/rust-ast-visitor.h
+++ b/gcc/rust/ast/rust-ast-visitor.h
@@ -129,7 +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){};
+  virtual void visit (InlineAsm &expr) { rust_unreachable (); }
 
   // rust-item.h
   virtual void visit (TypeParam &param) = 0;
diff --git a/gcc/rust/ast/rust-ast.cc b/gcc/rust/ast/rust-ast.cc
index 2a173c4610df..d94b7118d5e2 100644
--- a/gcc/rust/ast/rust-ast.cc
+++ b/gcc/rust/ast/rust-ast.cc
@@ -4659,6 +4659,7 @@ AsyncBlockExpr::accept_vis (ASTVisitor &vis)
 void
 InlineAsm::accept_vis (ASTVisitor &vis)
 {
+  rust_unreachable ();
   vis.visit (*this);
 }
 
diff --git a/gcc/rust/hir/tree/rust-hir-visitor.h 
b/gcc/rust/hir/tree/rust-hir-visitor.h
index ae9d23f2e005..80960fc03156 100644
--- a/gcc/rust/hir/tree/rust-hir-visitor.h
+++ b/gcc/rust/hir/tree/rust-hir-visitor.h
@@ -19,6 +19,7 @@
 #ifndef RUST_HIR_VISITOR_H
 #define RUST_HIR_VISITOR_H
 
+#include "rust-hir-expr.h"
 #include "rust-hir-full-decls.h"
 
 namespace Rust {
@@ -85,6 +86,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) {}
   virtual void visit (TypeParam &param) = 0;
   virtual void visit (ConstGenericParam &param) = 0;
   virtual void visit (LifetimeWhereClauseItem &item) = 0;
diff --git a/gcc/rust/hir/tree/rust-hir.cc b/gcc/rust/hir/tree/rust-hir.cc
index 5e5d579e26b9..7ad0de85a6cd 100644
--- a/gcc/rust/hir/tree/rust-hir.cc
+++ b/gcc/rust/hir/tree/rust-hir.cc
@@ -3772,11 +3772,16 @@ BorrowExpr::accept_vis (HIRFullVisitor &vis)
 
 void
 InlineAsm::accept_vis (HIRExpressionVisitor &vis)
-{}
+{
+  rust_unreachable ();
+}
 
 void
 InlineAsm::accept_vis (HIRFullVisitor &vis)
-{}
+{
+  rust_unreachable ();
+  vis.visit (*this);
+}
 
 void
 BorrowExpr::accept_vis (HIRExpressionVisitor &vis)

Reply via email to