1
Fork 0

Check for raw pointer dereference in THIR unsafeck

This commit is contained in:
LeSeulArtichaut 2021-05-14 23:19:59 +02:00
parent f94942d842
commit 27fe959c2c
22 changed files with 113 additions and 10 deletions

View file

@ -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,