From 27fe959c2c99207828cedfe19dbf96debd3be591 Mon Sep 17 00:00:00 2001 From: LeSeulArtichaut Date: Fri, 14 May 2021 23:19:59 +0200 Subject: Check for raw pointer dereference in THIR unsafeck --- compiler/rustc_mir_build/src/check_unsafety.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'compiler') diff --git a/compiler/rustc_mir_build/src/check_unsafety.rs b/compiler/rustc_mir_build/src/check_unsafety.rs index 8c2c81c8628..c1866b9a437 100644 --- a/compiler/rustc_mir_build/src/check_unsafety.rs +++ b/compiler/rustc_mir_build/src/check_unsafety.rs @@ -153,6 +153,11 @@ impl<'a, 'tcx> Visitor<'a, 'tcx> for UnsafetyVisitor<'a, 'tcx> { ExprKind::InlineAsm { .. } | ExprKind::LlvmInlineAsm { .. } => { self.requires_unsafe(expr.span, UseOfInlineAssembly); } + ExprKind::Deref { arg } => { + if self.thir[arg].ty.is_unsafe_ptr() { + self.requires_unsafe(expr.span, DerefOfRawPointer); + } + } _ => {} } @@ -203,7 +208,6 @@ enum UnsafeOpKind { UseOfMutableStatic, #[allow(dead_code)] // FIXME UseOfExternStatic, - #[allow(dead_code)] // FIXME DerefOfRawPointer, #[allow(dead_code)] // FIXME AssignToDroppingUnionField, -- cgit 1.4.1-3-g733a5