]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Make sure CompileExpr::visit is reached
authorjjasmine <tanghocle456@gmail.com>
Sat, 22 Jun 2024 21:33:47 +0000 (14:33 -0700)
committerArthur Cohen <arthur.cohen@embecosm.com>
Wed, 19 Mar 2025 14:32:05 +0000 (15:32 +0100)
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.

gcc/rust/hir/tree/rust-hir.cc
gcc/rust/typecheck/rust-hir-type-check-expr.cc
gcc/testsuite/rust/compile/inline_asm_compile_nop.rs [new file with mode: 0644]

index 8e0d444ce15264f3ccd1dfda9bc84772c573e29d..f05e5065e62584596f59ffa35e14f168a54f6937 100644 (file)
@@ -3833,7 +3833,9 @@ BorrowExpr::accept_vis (HIRFullVisitor &vis)
 
 void
 InlineAsm::accept_vis (HIRExpressionVisitor &vis)
-{}
+{
+  vis.visit (*this);
+}
 
 void
 InlineAsm::accept_vis (HIRFullVisitor &vis)
index 6635f13ea040cc4fa9157f3145b54ed44d7e3c82..1197916d1f5d723f1097daced3d1be2d19b0526f 100644 (file)
@@ -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 (file)
index 0000000..c49667c
--- /dev/null
@@ -0,0 +1,12 @@
+#![feature(rustc_attrs)]
+
+#[rustc_builtin_macro]
+macro_rules! asm {
+    () => {}
+}
+
+fn main() {
+    unsafe {
+        asm!("nop");
+    }
+}
\ No newline at end of file