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

commit c3e69be4e6b44974f7eee2977778248723fec72e
Author: jjasmine <tanghocle...@gmail.com>
Date:   Sat Jun 22 14:33:47 2024 -0700

    Make sure CompileExpr::visit is reached
    
    gcc/rust/ChangeLog:
    
            * hir/tree/rust-hir.cc (InlineAsm::accept_vis):
            Make sure CompileExpr::visit is reached
            * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
            Likewise
    gcc/testsuite/ChangeLog:
    
            * rust/compile/inline_asm_compile_nop.rs: New test.

Diff:
---
 gcc/rust/hir/tree/rust-hir.cc                        |  4 +++-
 gcc/rust/typecheck/rust-hir-type-check-expr.cc       |  4 +---
 gcc/testsuite/rust/compile/inline_asm_compile_nop.rs | 12 ++++++++++++
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/gcc/rust/hir/tree/rust-hir.cc b/gcc/rust/hir/tree/rust-hir.cc
index 797a7fbe3410..d5ca95c1cc06 100644
--- a/gcc/rust/hir/tree/rust-hir.cc
+++ b/gcc/rust/hir/tree/rust-hir.cc
@@ -3833,7 +3833,9 @@ BorrowExpr::accept_vis (HIRFullVisitor &vis)
 
 void
 InlineAsm::accept_vis (HIRExpressionVisitor &vis)
-{}
+{
+  vis.visit (*this);
+}
 
 void
 InlineAsm::accept_vis (HIRFullVisitor &vis)
diff --git a/gcc/rust/typecheck/rust-hir-type-check-expr.cc 
b/gcc/rust/typecheck/rust-hir-type-check-expr.cc
index cd41f8646273..0ce5c78e0d44 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-expr.cc
+++ b/gcc/rust/typecheck/rust-hir-type-check-expr.cc
@@ -777,9 +777,7 @@ TypeCheckExpr::visit (HIR::RangeToExpr &expr)
 
 void
 TypeCheckExpr::visit (HIR::InlineAsm &expr)
-{
-  return;
-}
+{}
 
 void
 TypeCheckExpr::visit (HIR::RangeFullExpr &expr)
diff --git a/gcc/testsuite/rust/compile/inline_asm_compile_nop.rs 
b/gcc/testsuite/rust/compile/inline_asm_compile_nop.rs
new file mode 100644
index 000000000000..c49667c879de
--- /dev/null
+++ b/gcc/testsuite/rust/compile/inline_asm_compile_nop.rs
@@ -0,0 +1,12 @@
+#![feature(rustc_attrs)]
+
+#[rustc_builtin_macro]
+macro_rules! asm {
+    () => {}
+}
+
+fn main() {
+    unsafe {
+        asm!("nop");
+    }
+}
\ No newline at end of file

Reply via email to