diff options
| author | clementmiao <clementmiao@gmail.com> | 2016-08-17 22:45:21 -0700 |
|---|---|---|
| committer | clementmiao <clementmiao@gmail.com> | 2016-08-17 22:45:21 -0700 |
| commit | dae1406b822c1357f701047951e747dbca2b1446 (patch) | |
| tree | 8478fcdd24dd108e72098763847a5f39e505fdab | |
| parent | 9376da6f77e8b7ed204ee704b29e96213b69d0f1 (diff) | |
updated E0396 to new error format
| -rw-r--r-- | src/librustc_mir/transform/qualify_consts.rs | 10 | ||||
| -rw-r--r-- | src/test/compile-fail/E0396.rs | 1 | ||||
| -rw-r--r-- | src/test/compile-fail/const-deref-ptr.rs | 1 |
3 files changed, 9 insertions, 3 deletions
diff --git a/src/librustc_mir/transform/qualify_consts.rs b/src/librustc_mir/transform/qualify_consts.rs index 103a15dadb6..e5473d288d4 100644 --- a/src/librustc_mir/transform/qualify_consts.rs +++ b/src/librustc_mir/transform/qualify_consts.rs @@ -490,9 +490,13 @@ impl<'a, 'tcx> Visitor<'tcx> for Qualifier<'a, 'tcx, 'tcx> { if let ty::TyRawPtr(_) = base_ty.sty { this.add(Qualif::NOT_CONST); if this.mode != Mode::Fn { - span_err!(this.tcx.sess, this.span, E0396, - "raw pointers cannot be dereferenced in {}s", - this.mode); + struct_span_err!(this.tcx.sess, + this.span, E0396, + "raw pointers cannot be dereferenced in {}s", + this.mode) + .span_label(this.span, + &format!("dereference of raw pointer in constant")) + .emit(); } } } diff --git a/src/test/compile-fail/E0396.rs b/src/test/compile-fail/E0396.rs index 7f34acdfb90..47080fb6e9e 100644 --- a/src/test/compile-fail/E0396.rs +++ b/src/test/compile-fail/E0396.rs @@ -11,6 +11,7 @@ const REG_ADDR: *const u8 = 0x5f3759df as *const u8; const VALUE: u8 = unsafe { *REG_ADDR }; //~ ERROR E0396 + //~| NOTE dereference of raw pointer in constant fn main() { } diff --git a/src/test/compile-fail/const-deref-ptr.rs b/src/test/compile-fail/const-deref-ptr.rs index fa15f3e87c6..c626801d48c 100644 --- a/src/test/compile-fail/const-deref-ptr.rs +++ b/src/test/compile-fail/const-deref-ptr.rs @@ -12,5 +12,6 @@ fn main() { static C: u64 = unsafe {*(0xdeadbeef as *const u64)}; //~ ERROR E0396 + //~| NOTE dereference of raw pointer in constant println!("{}", C); } |
