about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBastian Kersting <bkersting@google.com>2024-12-17 13:00:22 +0000
committerBastian Kersting <bkersting@google.com>2025-01-31 11:13:34 +0000
commit27454db7d156cf8b99d6d59145ae2a1b92368a49 (patch)
tree9840833a808b4e78f78f241a3af7d8b315ac8f16
parent7eefa7671f59dba13a15fd6255684aa19ee05f7d (diff)
downloadrust-27454db7d156cf8b99d6d59145ae2a1b92368a49.tar.gz
rust-27454db7d156cf8b99d6d59145ae2a1b92368a49.zip
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.
-rw-r--r--src/driver.rs2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/driver.rs b/src/driver.rs
index 8201f332d33..c548f262a92 100644
--- a/src/driver.rs
+++ b/src/driver.rs
@@ -166,6 +166,8 @@ impl rustc_driver::Callbacks for ClippyCallbacks {
         // MIR passes can be enabled / disabled separately, we should figure out, what passes to
         // use for Clippy.
         config.opts.unstable_opts.mir_opt_level = Some(0);
+        config.opts.unstable_opts.mir_enable_passes =
+            vec![("CheckNull".to_owned(), false), ("CheckAlignment".to_owned(), false)];
 
         // Disable flattening and inlining of format_args!(), so the HIR matches with the AST.
         config.opts.unstable_opts.flatten_format_args = false;