Insert null checks for pointer dereferences when debug assertions are enabled
Similar to how the alignment is already checked, this adds a check for null pointer dereferences in debug mode. It is implemented similarly to the alignment check as a MirPass. This is related to a 2025H1 project goal for better UB checks in debug mode: https://github.com/rust-lang/rust-project-goals/pull/177.
This commit is contained in:
parent
851322b74d
commit
b151b513ba
32 changed files with 281 additions and 6 deletions
|
@ -713,6 +713,11 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
|
|||
// and `#[track_caller]` adds an implicit third argument.
|
||||
(LangItem::PanicMisalignedPointerDereference, vec![required, found, location])
|
||||
}
|
||||
AssertKind::NullPointerDereference => {
|
||||
// It's `fn panic_null_pointer_dereference()`,
|
||||
// `#[track_caller]` adds an implicit argument.
|
||||
(LangItem::PanicNullPointerDereference, vec![location])
|
||||
}
|
||||
_ => {
|
||||
// It's `pub fn panic_...()` and `#[track_caller]` adds an implicit argument.
|
||||
(msg.panic_function(), vec![location])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue