aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/checks/errors/rust-unsafe-checker.cc
diff options
context:
space:
mode:
authorjjasmine <tanghocle456@gmail.com>2024-05-31 16:09:40 -0700
committerArthur Cohen <arthur.cohen@embecosm.com>2025-03-17 16:35:44 +0100
commitd7f480b7693d3d02bbd5d8bb9baaa54c1bf7feab (patch)
tree36218b2d2633dbd4f1c1e709374945c140c1262c /gcc/rust/checks/errors/rust-unsafe-checker.cc
parentbfc249cc179ab1097598bcc5baa726768f5c39c0 (diff)
downloadgcc-d7f480b7693d3d02bbd5d8bb9baaa54c1bf7feab.zip
gcc-d7f480b7693d3d02bbd5d8bb9baaa54c1bf7feab.tar.gz
gcc-d7f480b7693d3d02bbd5d8bb9baaa54c1bf7feab.tar.bz2
gccrs: Partial unsafe support for inline asm
gcc/rust/ChangeLog: * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Partial unsafe support for inline asm * checks/errors/rust-unsafe-checker.h: Likewise. * hir/tree/rust-hir-expr.h: Likewise. * hir/tree/rust-hir.cc (InlineAsm::accept_vis): Likewise.
Diffstat (limited to 'gcc/rust/checks/errors/rust-unsafe-checker.cc')
-rw-r--r--gcc/rust/checks/errors/rust-unsafe-checker.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/rust/checks/errors/rust-unsafe-checker.cc b/gcc/rust/checks/errors/rust-unsafe-checker.cc
index 8d986c7..c6ed922 100644
--- a/gcc/rust/checks/errors/rust-unsafe-checker.cc
+++ b/gcc/rust/checks/errors/rust-unsafe-checker.cc
@@ -637,6 +637,17 @@ UnsafeChecker::visit (AsyncBlockExpr &)
}
void
+UnsafeChecker::visit (InlineAsm &expr)
+{
+ if (unsafe_context.is_in_context ())
+ return;
+
+ rust_error_at (
+ expr.get_locus (), ErrorCode::E0133,
+ "use of inline assembly is unsafe and requires unsafe function or block");
+}
+
+void
UnsafeChecker::visit (TypeParam &)
{}