Skip to content

Commit 79666c8

Browse files
committed
changes based on review
1 parent 0531ed0 commit 79666c8

File tree

3 files changed

+34
-66
lines changed

3 files changed

+34
-66
lines changed

compiler/rustc_lint/src/builtin.rs

+4-6
Original file line numberDiff line numberDiff line change
@@ -2972,10 +2972,10 @@ declare_lint! {
29722972
///
29732973
/// ```rust,no_run
29742974
/// # #![allow(unused)]
2975+
/// use std::ptr;
29752976
/// unsafe {
2976-
/// let x = &*core::ptr::null::<i32>();
2977-
/// let x = core::ptr::addr_of!(*std::ptr::null::<i32>());
2978-
/// let x = *core::ptr::null::<i32>();
2977+
/// let x = &*ptr::null::<i32>();
2978+
/// let x = ptr::addr_of!(*ptr::null::<i32>());
29792979
/// let x = *(0 as *const i32);
29802980
/// }
29812981
/// ```
@@ -3036,9 +3036,7 @@ impl<'tcx> LateLintPass<'tcx> for DerefNullPtr {
30363036
if let rustc_hir::UnOp::Deref = un_op {
30373037
if is_null_ptr(cx, expr_deref) {
30383038
cx.struct_span_lint(DEREF_NULLPTR, expr.span, |lint| {
3039-
let mut err =
3040-
lint.build("Dereferencing a null pointer causes undefined behavior");
3041-
err.span_label(expr.span, "a null pointer is dereferenced");
3039+
let mut err = lint.build("dereferencing a null pointer");
30423040
err.span_label(
30433041
expr.span,
30443042
"this code causes undefined behavior when executed",

src/test/ui/lint/lint-deref-nullptr.rs

+10-10
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,25 @@ fn f() {
77
let a = 1;
88
let ub = *(a as *const i32);
99
let ub = *(0 as *const i32);
10-
//~^ ERROR Dereferencing a null pointer causes undefined behavior
10+
//~^ ERROR dereferencing a null pointer
1111
let ub = *core::ptr::null::<i32>();
12-
//~^ ERROR Dereferencing a null pointer causes undefined behavior
12+
//~^ ERROR dereferencing a null pointer
1313
let ub = *core::ptr::null_mut::<i32>();
14-
//~^ ERROR Dereferencing a null pointer causes undefined behavior
14+
//~^ ERROR dereferencing a null pointer
1515
let ub = *(core::ptr::null::<i16>() as *const i32);
16-
//~^ ERROR Dereferencing a null pointer causes undefined behavior
16+
//~^ ERROR dereferencing a null pointer
1717
let ub = *(core::ptr::null::<i16>() as *mut i32 as *mut usize as *const u8);
18-
//~^ ERROR Dereferencing a null pointer causes undefined behavior
18+
//~^ ERROR dereferencing a null pointer
1919
let ub = &*core::ptr::null::<i32>();
20-
//~^ ERROR Dereferencing a null pointer causes undefined behavior
20+
//~^ ERROR dereferencing a null pointer
2121
core::ptr::addr_of!(*core::ptr::null::<i32>());
22-
//~^ ERROR Dereferencing a null pointer causes undefined behavior
22+
//~^ ERROR dereferencing a null pointer
2323
std::ptr::addr_of_mut!(*core::ptr::null_mut::<i32>());
24-
//~^ ERROR Dereferencing a null pointer causes undefined behavior
24+
//~^ ERROR dereferencing a null pointer
2525
let ub = *std::ptr::null::<i32>();
26-
//~^ ERROR Dereferencing a null pointer causes undefined behavior
26+
//~^ ERROR dereferencing a null pointer
2727
let ub = *std::ptr::null_mut::<i32>();
28-
//~^ ERROR Dereferencing a null pointer causes undefined behavior
28+
//~^ ERROR dereferencing a null pointer
2929
}
3030
}
3131

+20-50
Original file line numberDiff line numberDiff line change
@@ -1,98 +1,68 @@
1-
error: Dereferencing a null pointer causes undefined behavior
1+
error: dereferencing a null pointer
22
--> $DIR/lint-deref-nullptr.rs:9:18
33
|
44
LL | let ub = *(0 as *const i32);
5-
| ^^^^^^^^^^^^^^^^^^
6-
| |
7-
| a null pointer is dereferenced
8-
| this code causes undefined behavior when executed
5+
| ^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
96
|
107
note: the lint level is defined here
118
--> $DIR/lint-deref-nullptr.rs:3:9
129
|
1310
LL | #![deny(deref_nullptr)]
1411
| ^^^^^^^^^^^^^
1512

16-
error: Dereferencing a null pointer causes undefined behavior
13+
error: dereferencing a null pointer
1714
--> $DIR/lint-deref-nullptr.rs:11:18
1815
|
1916
LL | let ub = *core::ptr::null::<i32>();
20-
| ^^^^^^^^^^^^^^^^^^^^^^^^^
21-
| |
22-
| a null pointer is dereferenced
23-
| this code causes undefined behavior when executed
17+
| ^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
2418

25-
error: Dereferencing a null pointer causes undefined behavior
19+
error: dereferencing a null pointer
2620
--> $DIR/lint-deref-nullptr.rs:13:18
2721
|
2822
LL | let ub = *core::ptr::null_mut::<i32>();
29-
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
30-
| |
31-
| a null pointer is dereferenced
32-
| this code causes undefined behavior when executed
23+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
3324

34-
error: Dereferencing a null pointer causes undefined behavior
25+
error: dereferencing a null pointer
3526
--> $DIR/lint-deref-nullptr.rs:15:18
3627
|
3728
LL | let ub = *(core::ptr::null::<i16>() as *const i32);
38-
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
39-
| |
40-
| a null pointer is dereferenced
41-
| this code causes undefined behavior when executed
29+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
4230

43-
error: Dereferencing a null pointer causes undefined behavior
31+
error: dereferencing a null pointer
4432
--> $DIR/lint-deref-nullptr.rs:17:18
4533
|
4634
LL | let ub = *(core::ptr::null::<i16>() as *mut i32 as *mut usize as *const u8);
47-
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
48-
| |
49-
| a null pointer is dereferenced
50-
| this code causes undefined behavior when executed
35+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
5136

52-
error: Dereferencing a null pointer causes undefined behavior
37+
error: dereferencing a null pointer
5338
--> $DIR/lint-deref-nullptr.rs:19:19
5439
|
5540
LL | let ub = &*core::ptr::null::<i32>();
56-
| ^^^^^^^^^^^^^^^^^^^^^^^^^
57-
| |
58-
| a null pointer is dereferenced
59-
| this code causes undefined behavior when executed
41+
| ^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
6042

61-
error: Dereferencing a null pointer causes undefined behavior
43+
error: dereferencing a null pointer
6244
--> $DIR/lint-deref-nullptr.rs:21:29
6345
|
6446
LL | core::ptr::addr_of!(*core::ptr::null::<i32>());
65-
| ^^^^^^^^^^^^^^^^^^^^^^^^^
66-
| |
67-
| a null pointer is dereferenced
68-
| this code causes undefined behavior when executed
47+
| ^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
6948

70-
error: Dereferencing a null pointer causes undefined behavior
49+
error: dereferencing a null pointer
7150
--> $DIR/lint-deref-nullptr.rs:23:32
7251
|
7352
LL | std::ptr::addr_of_mut!(*core::ptr::null_mut::<i32>());
74-
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
75-
| |
76-
| a null pointer is dereferenced
77-
| this code causes undefined behavior when executed
53+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
7854

79-
error: Dereferencing a null pointer causes undefined behavior
55+
error: dereferencing a null pointer
8056
--> $DIR/lint-deref-nullptr.rs:25:18
8157
|
8258
LL | let ub = *std::ptr::null::<i32>();
83-
| ^^^^^^^^^^^^^^^^^^^^^^^^
84-
| |
85-
| a null pointer is dereferenced
86-
| this code causes undefined behavior when executed
59+
| ^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
8760

88-
error: Dereferencing a null pointer causes undefined behavior
61+
error: dereferencing a null pointer
8962
--> $DIR/lint-deref-nullptr.rs:27:18
9063
|
9164
LL | let ub = *std::ptr::null_mut::<i32>();
92-
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
93-
| |
94-
| a null pointer is dereferenced
95-
| this code causes undefined behavior when executed
65+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
9666

9767
error: aborting due to 10 previous errors
9868

0 commit comments

Comments
 (0)