https://gcc.gnu.org/g:86c8894ab896ffc29bbed5fc7faeff022e86ad22
commit r15-8337-g86c8894ab896ffc29bbed5fc7faeff022e86ad22 Author: jjasmine <tanghocle...@gmail.com> Date: Sat Jun 22 14:33:47 2024 -0700 gccrs: 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 8e0d444ce152..f05e5065e625 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 6635f13ea040..1197916d1f5d 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