Swap const evaluation lint spans to point at problem in primary span

This commit is contained in:
Esteban Küber 2019-03-10 17:28:52 -07:00
parent 1b0ab0b8a9
commit 8e043950c8
35 changed files with 358 additions and 304 deletions

View file

@ -100,6 +100,7 @@ pub fn report_as_lint(&self,
tcx: TyCtxtAt<'a, 'gcx, 'tcx>,
message: &str,
lint_root: hir::HirId,
span: Option<Span>,
) -> ErrorHandled {
let lint = self.struct_generic(
tcx,
@ -108,6 +109,16 @@ pub fn report_as_lint(&self,
);
match lint {
Ok(mut lint) => {
if let Some(span) = span {
let primary_spans = lint.span.primary_spans().to_vec();
// point at the actual error as the primary span
lint.replace_span_with(span);
// point to the `const` statement as a secondary span
// they don't have any label
for sp in primary_spans {
lint.span_label(sp, "");
}
}
lint.emit();
ErrorHandled::Reported
},

View file

@ -668,6 +668,7 @@ pub fn const_eval_raw_provider<'a, 'tcx>(
tcx.at(tcx.def_span(def_id)),
"any use of this value will cause an error",
hir_id,
Some(err.span),
)
},
// promoting runtime code is only allowed to error if it references broken constants
@ -684,6 +685,7 @@ pub fn const_eval_raw_provider<'a, 'tcx>(
tcx.at(span),
"reaching this expression at runtime will panic or abort",
tcx.hir().as_local_hir_id(def_id).unwrap(),
Some(err.span),
)
}
// anything else (array lengths, enum initializers, constant patterns) are reported

View file

@ -237,6 +237,7 @@ fn use_ecx<F, T>(
self.ecx.tcx,
"this expression will panic at runtime",
lint_root,
None,
);
}
}

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error
--> $DIR/array_const_index-0.rs:2:1
--> $DIR/array_const_index-0.rs:2:16
|
LL | const B: i32 = (&A)[1];
| ^^^^^^^^^^^^^^^-------^
| ---------------^^^^^^^-
| |
| index out of bounds: the len is 0 but the index is 1
|

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error
--> $DIR/array_const_index-1.rs:2:1
--> $DIR/array_const_index-1.rs:2:16
|
LL | const B: i32 = A[1];
| ^^^^^^^^^^^^^^^----^
| ---------------^^^^-
| |
| index out of bounds: the len is 0 but the index is 1
|

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error
--> $DIR/const-err-early.rs:3:1
--> $DIR/const-err-early.rs:3:19
|
LL | pub const A: i8 = -std::i8::MIN;
| ^^^^^^^^^^^^^^^^^^-------------^
| ------------------^^^^^^^^^^^^^-
| |
| attempt to negate with overflow
|
@ -13,34 +13,34 @@ LL | #![deny(const_err)]
| ^^^^^^^^^
error: any use of this value will cause an error
--> $DIR/const-err-early.rs:4:1
--> $DIR/const-err-early.rs:4:19
|
LL | pub const B: u8 = 200u8 + 200u8;
| ^^^^^^^^^^^^^^^^^^-------------^
| ------------------^^^^^^^^^^^^^-
| |
| attempt to add with overflow
error: any use of this value will cause an error
--> $DIR/const-err-early.rs:5:1
--> $DIR/const-err-early.rs:5:19
|
LL | pub const C: u8 = 200u8 * 4;
| ^^^^^^^^^^^^^^^^^^---------^
| ------------------^^^^^^^^^-
| |
| attempt to multiply with overflow
error: any use of this value will cause an error
--> $DIR/const-err-early.rs:6:1
--> $DIR/const-err-early.rs:6:19
|
LL | pub const D: u8 = 42u8 - (42u8 + 1);
| ^^^^^^^^^^^^^^^^^^-----------------^
| ------------------^^^^^^^^^^^^^^^^^-
| |
| attempt to subtract with overflow
error: any use of this value will cause an error
--> $DIR/const-err-early.rs:7:1
--> $DIR/const-err-early.rs:7:19
|
LL | pub const E: u8 = [5u8][1];
| ^^^^^^^^^^^^^^^^^^--------^
| ------------------^^^^^^^^-
| |
| index out of bounds: the len is 1 but the index is 1

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error
--> $DIR/const-err-multi.rs:3:1
--> $DIR/const-err-multi.rs:3:19
|
LL | pub const A: i8 = -std::i8::MIN;
| ^^^^^^^^^^^^^^^^^^-------------^
| ------------------^^^^^^^^^^^^^-
| |
| attempt to negate with overflow
|
@ -13,26 +13,26 @@ LL | #![deny(const_err)]
| ^^^^^^^^^
error: any use of this value will cause an error
--> $DIR/const-err-multi.rs:5:1
--> $DIR/const-err-multi.rs:5:19
|
LL | pub const B: i8 = A;
| ^^^^^^^^^^^^^^^^^^-^
| ------------------^-
| |
| referenced constant has errors
error: any use of this value will cause an error
--> $DIR/const-err-multi.rs:7:1
--> $DIR/const-err-multi.rs:7:19
|
LL | pub const C: u8 = A as u8;
| ^^^^^^^^^^^^^^^^^^-------^
| ------------------^^^^^^^-
| |
| referenced constant has errors
error: any use of this value will cause an error
--> $DIR/const-err-multi.rs:9:1
--> $DIR/const-err-multi.rs:9:19
|
LL | pub const D: i8 = 50 - A;
| ^^^^^^^^^^^^^^^^^^------^
| ------------------^^^^^^-
| |
| referenced constant has errors

View file

@ -1,8 +1,8 @@
warning: any use of this value will cause an error
--> $DIR/const-err.rs:10:1
--> $DIR/const-err.rs:10:17
|
LL | const FOO: u8 = [5u8][1];
| ^^^^^^^^^^^^^^^^--------^
| ----------------^^^^^^^^-
| |
| index out of bounds: the len is 1 but the index is 1
|

View file

@ -1,8 +1,8 @@
warning: any use of this value will cause an error
--> $DIR/conditional_array_execution.rs:5:1
--> $DIR/conditional_array_execution.rs:5:19
|
LL | const FOO: u32 = [X - Y, Y - X][(X < Y) as usize];
| ^^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ------------------^^^^^---------------------------
| |
| attempt to subtract with overflow
|

View file

@ -11,43 +11,51 @@
use std::{i8, i16, i32, i64, isize};
use std::{u8, u16, u32, u64, usize};
const VALS_I8: (i8,) = //~ ERROR any use of this value will cause an error
const VALS_I8: (i8,) =
(
i8::MIN - 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_I16: (i16,) = //~ ERROR any use of this value will cause an error
const VALS_I16: (i16,) =
(
i16::MIN - 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_I32: (i32,) = //~ ERROR any use of this value will cause an error
const VALS_I32: (i32,) =
(
i32::MIN - 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_I64: (i64,) = //~ ERROR any use of this value will cause an error
const VALS_I64: (i64,) =
(
i64::MIN - 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U8: (u8,) = //~ ERROR any use of this value will cause an error
const VALS_U8: (u8,) =
(
u8::MIN - 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U16: (u16,) = ( //~ ERROR any use of this value will cause an error
const VALS_U16: (u16,) = (
u16::MIN - 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U32: (u32,) = ( //~ ERROR any use of this value will cause an error
const VALS_U32: (u32,) = (
u32::MIN - 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U64: (u64,) = //~ ERROR any use of this value will cause an error
const VALS_U64: (u64,) =
(
u64::MIN - 1,
);
//~^^ ERROR any use of this value will cause an error
fn main() {
foo(VALS_I8);

View file

@ -1,12 +1,12 @@
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:14:1
--> $DIR/const-eval-overflow2.rs:16:6
|
LL | / const VALS_I8: (i8,) =
LL | | (
LL | | i8::MIN - 1,
| | ----------- attempt to subtract with overflow
| | ^^^^^^^^^^^ attempt to subtract with overflow
LL | | );
| |_______^
| |_______-
|
note: lint level defined here
--> $DIR/const-eval-overflow2.rs:8:9
@ -15,72 +15,72 @@ LL | #![deny(const_err)]
| ^^^^^^^^^
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:19:1
--> $DIR/const-eval-overflow2.rs:22:6
|
LL | / const VALS_I16: (i16,) =
LL | | (
LL | | i16::MIN - 1,
| | ------------ attempt to subtract with overflow
| | ^^^^^^^^^^^^ attempt to subtract with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:24:1
--> $DIR/const-eval-overflow2.rs:28:6
|
LL | / const VALS_I32: (i32,) =
LL | | (
LL | | i32::MIN - 1,
| | ------------ attempt to subtract with overflow
| | ^^^^^^^^^^^^ attempt to subtract with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:29:1
--> $DIR/const-eval-overflow2.rs:34:6
|
LL | / const VALS_I64: (i64,) =
LL | | (
LL | | i64::MIN - 1,
| | ------------ attempt to subtract with overflow
| | ^^^^^^^^^^^^ attempt to subtract with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:34:1
--> $DIR/const-eval-overflow2.rs:40:6
|
LL | / const VALS_U8: (u8,) =
LL | | (
LL | | u8::MIN - 1,
| | ----------- attempt to subtract with overflow
| | ^^^^^^^^^^^ attempt to subtract with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:39:1
--> $DIR/const-eval-overflow2.rs:45:6
|
LL | / const VALS_U16: (u16,) = (
LL | | u16::MIN - 1,
| | ------------ attempt to subtract with overflow
| | ^^^^^^^^^^^^ attempt to subtract with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:43:1
--> $DIR/const-eval-overflow2.rs:50:6
|
LL | / const VALS_U32: (u32,) = (
LL | | u32::MIN - 1,
| | ------------ attempt to subtract with overflow
| | ^^^^^^^^^^^^ attempt to subtract with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:47:1
--> $DIR/const-eval-overflow2.rs:56:6
|
LL | / const VALS_U64: (u64,) =
LL | | (
LL | | u64::MIN - 1,
| | ------------ attempt to subtract with overflow
| | ^^^^^^^^^^^^ attempt to subtract with overflow
LL | | );
| |_______^
| |_______-
error: aborting due to 8 previous errors

View file

@ -11,43 +11,51 @@
use std::{i8, i16, i32, i64, isize};
use std::{u8, u16, u32, u64, usize};
const VALS_I8: (i8,) = //~ ERROR any use of this value will cause an error
const VALS_I8: (i8,) =
(
i8::MAX + 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_I16: (i16,) = //~ ERROR any use of this value will cause an error
const VALS_I16: (i16,) =
(
i16::MAX + 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_I32: (i32,) = //~ ERROR any use of this value will cause an error
const VALS_I32: (i32,) =
(
i32::MAX + 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_I64: (i64,) = //~ ERROR any use of this value will cause an error
const VALS_I64: (i64,) =
(
i64::MAX + 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U8: (u8,) = //~ ERROR any use of this value will cause an error
const VALS_U8: (u8,) =
(
u8::MAX + 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U16: (u16,) = ( //~ ERROR any use of this value will cause an error
const VALS_U16: (u16,) = (
u16::MAX + 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U32: (u32,) = ( //~ ERROR any use of this value will cause an error
const VALS_U32: (u32,) = (
u32::MAX + 1,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U64: (u64,) = //~ ERROR any use of this value will cause an error
const VALS_U64: (u64,) =
(
u64::MAX + 1,
);
//~^^ ERROR any use of this value will cause an error
fn main() {
foo(VALS_I8);

View file

@ -1,12 +1,12 @@
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:14:1
--> $DIR/const-eval-overflow2b.rs:16:6
|
LL | / const VALS_I8: (i8,) =
LL | | (
LL | | i8::MAX + 1,
| | ----------- attempt to add with overflow
| | ^^^^^^^^^^^ attempt to add with overflow
LL | | );
| |_______^
| |_______-
|
note: lint level defined here
--> $DIR/const-eval-overflow2b.rs:8:9
@ -15,72 +15,72 @@ LL | #![deny(const_err)]
| ^^^^^^^^^
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:19:1
--> $DIR/const-eval-overflow2b.rs:22:6
|
LL | / const VALS_I16: (i16,) =
LL | | (
LL | | i16::MAX + 1,
| | ------------ attempt to add with overflow
| | ^^^^^^^^^^^^ attempt to add with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:24:1
--> $DIR/const-eval-overflow2b.rs:28:6
|
LL | / const VALS_I32: (i32,) =
LL | | (
LL | | i32::MAX + 1,
| | ------------ attempt to add with overflow
| | ^^^^^^^^^^^^ attempt to add with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:29:1
--> $DIR/const-eval-overflow2b.rs:34:6
|
LL | / const VALS_I64: (i64,) =
LL | | (
LL | | i64::MAX + 1,
| | ------------ attempt to add with overflow
| | ^^^^^^^^^^^^ attempt to add with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:34:1
--> $DIR/const-eval-overflow2b.rs:40:6
|
LL | / const VALS_U8: (u8,) =
LL | | (
LL | | u8::MAX + 1,
| | ----------- attempt to add with overflow
| | ^^^^^^^^^^^ attempt to add with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:39:1
--> $DIR/const-eval-overflow2b.rs:45:6
|
LL | / const VALS_U16: (u16,) = (
LL | | u16::MAX + 1,
| | ------------ attempt to add with overflow
| | ^^^^^^^^^^^^ attempt to add with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:43:1
--> $DIR/const-eval-overflow2b.rs:50:6
|
LL | / const VALS_U32: (u32,) = (
LL | | u32::MAX + 1,
| | ------------ attempt to add with overflow
| | ^^^^^^^^^^^^ attempt to add with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:47:1
--> $DIR/const-eval-overflow2b.rs:56:6
|
LL | / const VALS_U64: (u64,) =
LL | | (
LL | | u64::MAX + 1,
| | ------------ attempt to add with overflow
| | ^^^^^^^^^^^^ attempt to add with overflow
LL | | );
| |_______^
| |_______-
error: aborting due to 8 previous errors

View file

@ -11,43 +11,51 @@
use std::{i8, i16, i32, i64, isize};
use std::{u8, u16, u32, u64, usize};
const VALS_I8: (i8,) = //~ ERROR any use of this value will cause an error
const VALS_I8: (i8,) =
(
i8::MIN * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_I16: (i16,) = //~ ERROR any use of this value will cause an error
const VALS_I16: (i16,) =
(
i16::MIN * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_I32: (i32,) = //~ ERROR any use of this value will cause an error
const VALS_I32: (i32,) =
(
i32::MIN * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_I64: (i64,) = //~ ERROR any use of this value will cause an error
const VALS_I64: (i64,) =
(
i64::MIN * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U8: (u8,) = //~ ERROR any use of this value will cause an error
const VALS_U8: (u8,) =
(
u8::MAX * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U16: (u16,) = ( //~ ERROR any use of this value will cause an error
const VALS_U16: (u16,) = (
u16::MAX * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U32: (u32,) = ( //~ ERROR any use of this value will cause an error
const VALS_U32: (u32,) = (
u32::MAX * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U64: (u64,) = //~ ERROR any use of this value will cause an error
const VALS_U64: (u64,) =
(
u64::MAX * 2,
);
//~^^ ERROR any use of this value will cause an error
fn main() {
foo(VALS_I8);

View file

@ -1,12 +1,12 @@
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:14:1
--> $DIR/const-eval-overflow2c.rs:16:6
|
LL | / const VALS_I8: (i8,) =
LL | | (
LL | | i8::MIN * 2,
| | ----------- attempt to multiply with overflow
| | ^^^^^^^^^^^ attempt to multiply with overflow
LL | | );
| |_______^
| |_______-
|
note: lint level defined here
--> $DIR/const-eval-overflow2c.rs:8:9
@ -15,72 +15,72 @@ LL | #![deny(const_err)]
| ^^^^^^^^^
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:19:1
--> $DIR/const-eval-overflow2c.rs:22:6
|
LL | / const VALS_I16: (i16,) =
LL | | (
LL | | i16::MIN * 2,
| | ------------ attempt to multiply with overflow
| | ^^^^^^^^^^^^ attempt to multiply with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:24:1
--> $DIR/const-eval-overflow2c.rs:28:6
|
LL | / const VALS_I32: (i32,) =
LL | | (
LL | | i32::MIN * 2,
| | ------------ attempt to multiply with overflow
| | ^^^^^^^^^^^^ attempt to multiply with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:29:1
--> $DIR/const-eval-overflow2c.rs:34:6
|
LL | / const VALS_I64: (i64,) =
LL | | (
LL | | i64::MIN * 2,
| | ------------ attempt to multiply with overflow
| | ^^^^^^^^^^^^ attempt to multiply with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:34:1
--> $DIR/const-eval-overflow2c.rs:40:6
|
LL | / const VALS_U8: (u8,) =
LL | | (
LL | | u8::MAX * 2,
| | ----------- attempt to multiply with overflow
| | ^^^^^^^^^^^ attempt to multiply with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:39:1
--> $DIR/const-eval-overflow2c.rs:45:6
|
LL | / const VALS_U16: (u16,) = (
LL | | u16::MAX * 2,
| | ------------ attempt to multiply with overflow
| | ^^^^^^^^^^^^ attempt to multiply with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:43:1
--> $DIR/const-eval-overflow2c.rs:50:6
|
LL | / const VALS_U32: (u32,) = (
LL | | u32::MAX * 2,
| | ------------ attempt to multiply with overflow
| | ^^^^^^^^^^^^ attempt to multiply with overflow
LL | | );
| |_______^
| |_______-
error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:47:1
--> $DIR/const-eval-overflow2c.rs:56:6
|
LL | / const VALS_U64: (u64,) =
LL | | (
LL | | u64::MAX * 2,
| | ------------ attempt to multiply with overflow
| | ^^^^^^^^^^^^ attempt to multiply with overflow
LL | | );
| |_______^
| |_______-
error: aborting due to 8 previous errors

View file

@ -7,28 +7,28 @@ LL | const I32_REF_USIZE_UNION: usize = unsafe { Nonsense { int_32_ref: &3 }
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:27:5
--> $DIR/const-pointer-values-in-various-types.rs:27:43
|
LL | const I32_REF_U8_UNION: u8 = unsafe { Nonsense { int_32_ref: &3 }.uint_8 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^
| --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
|
= note: #[deny(const_err)] on by default
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:30:5
--> $DIR/const-pointer-values-in-various-types.rs:30:45
|
LL | const I32_REF_U16_UNION: u16 = unsafe { Nonsense { int_32_ref: &3 }.uint_16 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^
| ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:33:5
--> $DIR/const-pointer-values-in-various-types.rs:33:45
|
LL | const I32_REF_U32_UNION: u32 = unsafe { Nonsense { int_32_ref: &3 }.uint_32 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^
| ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
@ -49,26 +49,26 @@ LL | const I32_REF_U128_UNION: u128 = unsafe { Nonsense { int_32_ref: &3 }.u
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:42:5
--> $DIR/const-pointer-values-in-various-types.rs:42:43
|
LL | const I32_REF_I8_UNION: i8 = unsafe { Nonsense { int_32_ref: &3 }.int_8 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------^^^
| --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:45:5
--> $DIR/const-pointer-values-in-various-types.rs:45:45
|
LL | const I32_REF_I16_UNION: i16 = unsafe { Nonsense { int_32_ref: &3 }.int_16 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^
| ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:48:5
--> $DIR/const-pointer-values-in-various-types.rs:48:45
|
LL | const I32_REF_I32_UNION: i32 = unsafe { Nonsense { int_32_ref: &3 }.int_32 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^
| ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
@ -89,10 +89,10 @@ LL | const I32_REF_I128_UNION: i128 = unsafe { Nonsense { int_32_ref: &3 }.i
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:57:5
--> $DIR/const-pointer-values-in-various-types.rs:57:45
|
LL | const I32_REF_F32_UNION: f32 = unsafe { Nonsense { int_32_ref: &3 }.float_32 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
@ -105,42 +105,42 @@ LL | const I32_REF_F64_UNION: f64 = unsafe { Nonsense { int_32_ref: &3 }.flo
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:63:5
--> $DIR/const-pointer-values-in-various-types.rs:63:47
|
LL | const I32_REF_BOOL_UNION: bool = unsafe { Nonsense { int_32_ref: &3 }.truthy_falsey };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------------^^^
| ------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:66:5
--> $DIR/const-pointer-values-in-various-types.rs:66:47
|
LL | const I32_REF_CHAR_UNION: char = unsafe { Nonsense { int_32_ref: &3 }.character };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------^^^
| ------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:69:5
--> $DIR/const-pointer-values-in-various-types.rs:69:39
|
LL | const STR_U8_UNION: u8 = unsafe { Nonsense { stringy: "3" }.uint_8 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------^^^
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:72:5
--> $DIR/const-pointer-values-in-various-types.rs:72:41
|
LL | const STR_U16_UNION: u16 = unsafe { Nonsense { stringy: "3" }.uint_16 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------^^^
| ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:75:5
--> $DIR/const-pointer-values-in-various-types.rs:75:41
|
LL | const STR_U32_UNION: u32 = unsafe { Nonsense { stringy: "3" }.uint_32 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------^^^
| ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
@ -153,34 +153,34 @@ LL | const STR_U64_UNION: u64 = unsafe { Nonsense { stringy: "3" }.uint_64 }
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:81:5
--> $DIR/const-pointer-values-in-various-types.rs:81:43
|
LL | const STR_U128_UNION: u128 = unsafe { Nonsense { stringy: "3" }.uint_128 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^
| --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:84:5
--> $DIR/const-pointer-values-in-various-types.rs:84:39
|
LL | const STR_I8_UNION: i8 = unsafe { Nonsense { stringy: "3" }.int_8 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------^^^
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:87:5
--> $DIR/const-pointer-values-in-various-types.rs:87:41
|
LL | const STR_I16_UNION: i16 = unsafe { Nonsense { stringy: "3" }.int_16 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------^^^
| ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:90:5
--> $DIR/const-pointer-values-in-various-types.rs:90:41
|
LL | const STR_I32_UNION: i32 = unsafe { Nonsense { stringy: "3" }.int_32 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------^^^
| ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
@ -193,18 +193,18 @@ LL | const STR_I64_UNION: i64 = unsafe { Nonsense { stringy: "3" }.int_64 };
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:96:5
--> $DIR/const-pointer-values-in-various-types.rs:96:43
|
LL | const STR_I128_UNION: i128 = unsafe { Nonsense { stringy: "3" }.int_128 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------^^^
| --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:99:5
--> $DIR/const-pointer-values-in-various-types.rs:99:41
|
LL | const STR_F32_UNION: f32 = unsafe { Nonsense { stringy: "3" }.float_32 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^
| ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
@ -217,18 +217,18 @@ LL | const STR_F64_UNION: f64 = unsafe { Nonsense { stringy: "3" }.float_64
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:105:5
--> $DIR/const-pointer-values-in-various-types.rs:105:43
|
LL | const STR_BOOL_UNION: bool = unsafe { Nonsense { stringy: "3" }.truthy_falsey };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------------^^^
| --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes
error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:108:5
--> $DIR/const-pointer-values-in-various-types.rs:108:43
|
LL | const STR_CHAR_UNION: char = unsafe { Nonsense { stringy: "3" }.character };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^
| --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| a raw memory access tried to access part of a pointer value as raw bytes

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error
--> $DIR/const_panic.rs:4:1
--> $DIR/const_panic.rs:4:19
|
LL | pub const Z: () = panic!("cheese");
| ^^^^^^^^^^^^^^^^^^----------------^
| ------------------^^^^^^^^^^^^^^^^-
| |
| the evaluated program panicked at 'cheese', $DIR/const_panic.rs:4:19
|
@ -10,20 +10,20 @@ LL | pub const Z: () = panic!("cheese");
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
error: any use of this value will cause an error
--> $DIR/const_panic.rs:7:1
--> $DIR/const_panic.rs:7:19
|
LL | pub const Y: () = unreachable!();
| ^^^^^^^^^^^^^^^^^^--------------^
| ------------------^^^^^^^^^^^^^^-
| |
| the evaluated program panicked at 'internal error: entered unreachable code', $DIR/const_panic.rs:7:19
|
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
error: any use of this value will cause an error
--> $DIR/const_panic.rs:10:1
--> $DIR/const_panic.rs:10:19
|
LL | pub const X: () = unimplemented!();
| ^^^^^^^^^^^^^^^^^^----------------^
| ------------------^^^^^^^^^^^^^^^^-
| |
| the evaluated program panicked at 'not yet implemented', $DIR/const_panic.rs:10:19
|

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error
--> $DIR/const_panic_libcore.rs:5:1
--> $DIR/const_panic_libcore.rs:5:15
|
LL | const Z: () = panic!("cheese");
| ^^^^^^^^^^^^^^----------------^
| --------------^^^^^^^^^^^^^^^^-
| |
| the evaluated program panicked at 'cheese', $DIR/const_panic_libcore.rs:5:15
|
@ -10,20 +10,20 @@ LL | const Z: () = panic!("cheese");
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
error: any use of this value will cause an error
--> $DIR/const_panic_libcore.rs:8:1
--> $DIR/const_panic_libcore.rs:8:15
|
LL | const Y: () = unreachable!();
| ^^^^^^^^^^^^^^--------------^
| --------------^^^^^^^^^^^^^^-
| |
| the evaluated program panicked at 'internal error: entered unreachable code', $DIR/const_panic_libcore.rs:8:15
|
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
error: any use of this value will cause an error
--> $DIR/const_panic_libcore.rs:11:1
--> $DIR/const_panic_libcore.rs:11:15
|
LL | const X: () = unimplemented!();
| ^^^^^^^^^^^^^^----------------^
| --------------^^^^^^^^^^^^^^^^-
| |
| the evaluated program panicked at 'not yet implemented', $DIR/const_panic_libcore.rs:11:15
|

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error
--> $DIR/const_panic_libcore_main.rs:9:1
--> $DIR/const_panic_libcore_main.rs:9:15
|
LL | const Z: () = panic!("cheese");
| ^^^^^^^^^^^^^^----------------^
| --------------^^^^^^^^^^^^^^^^-
| |
| the evaluated program panicked at 'cheese', $DIR/const_panic_libcore_main.rs:9:15
|
@ -10,20 +10,20 @@ LL | const Z: () = panic!("cheese");
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
error: any use of this value will cause an error
--> $DIR/const_panic_libcore_main.rs:12:1
--> $DIR/const_panic_libcore_main.rs:12:15
|
LL | const Y: () = unreachable!();
| ^^^^^^^^^^^^^^--------------^
| --------------^^^^^^^^^^^^^^-
| |
| the evaluated program panicked at 'internal error: entered unreachable code', $DIR/const_panic_libcore_main.rs:12:15
|
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
error: any use of this value will cause an error
--> $DIR/const_panic_libcore_main.rs:15:1
--> $DIR/const_panic_libcore_main.rs:15:15
|
LL | const X: () = unimplemented!();
| ^^^^^^^^^^^^^^----------------^
| --------------^^^^^^^^^^^^^^^^-
| |
| the evaluated program panicked at 'not yet implemented', $DIR/const_panic_libcore_main.rs:15:15
|

View file

@ -1,34 +1,34 @@
error: any use of this value will cause an error
--> $DIR/const_raw_ptr_ops.rs:6:1
--> $DIR/const_raw_ptr_ops.rs:6:26
|
LL | const X: bool = unsafe { &1 as *const i32 == &2 as *const i32 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| "pointer arithmetic or comparison" needs an rfc before being allowed inside constants
|
= note: #[deny(const_err)] on by default
error: any use of this value will cause an error
--> $DIR/const_raw_ptr_ops.rs:12:1
--> $DIR/const_raw_ptr_ops.rs:12:28
|
LL | const Y2: usize = unsafe { &1 as *const i32 as usize + 1 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------^^^
| ---------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| "pointer arithmetic or comparison" needs an rfc before being allowed inside constants
error: any use of this value will cause an error
--> $DIR/const_raw_ptr_ops.rs:16:1
--> $DIR/const_raw_ptr_ops.rs:16:26
|
LL | const Z2: i32 = unsafe { *(42 as *const i32) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^-------------------^^^
| -------------------------^^^^^^^^^^^^^^^^^^^---
| |
| a memory access tried to interpret some bytes as a pointer
error: any use of this value will cause an error
--> $DIR/const_raw_ptr_ops.rs:17:1
--> $DIR/const_raw_ptr_ops.rs:17:26
|
LL | const Z3: i32 = unsafe { *(44 as *const i32) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^-------------------^^^
| -------------------------^^^^^^^^^^^^^^^^^^^---
| |
| a memory access tried to interpret some bytes as a pointer

View file

@ -1,8 +1,8 @@
warning: any use of this value will cause an error
--> $DIR/issue-43197.rs:8:5
--> $DIR/issue-43197.rs:8:20
|
LL | const X: u32 = 0-1;
| ^^^^^^^^^^^^^^^---^
| ---------------^^^-
| |
| attempt to subtract with overflow
|
@ -13,10 +13,10 @@ LL | #![warn(const_err)]
| ^^^^^^^^^
warning: any use of this value will cause an error
--> $DIR/issue-43197.rs:10:5
--> $DIR/issue-43197.rs:10:24
|
LL | const Y: u32 = foo(0-1);
| ^^^^^^^^^^^^^^^^^^^---^^
| -------------------^^^--
| |
| attempt to subtract with overflow

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error
--> $DIR/issue-49296.rs:18:1
--> $DIR/issue-49296.rs:18:16
|
LL | const X: u64 = *wat(42);
| ^^^^^^^^^^^^^^^--------^
| ---------------^^^^^^^^-
| |
| dangling pointer was dereferenced
|

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error
--> $DIR/issue-50814-2.rs:12:5
--> $DIR/issue-50814-2.rs:12:24
|
LL | const BAR: usize = [5, 6, 7][T::BOO];
| ^^^^^^^^^^^^^^^^^^^-----------------^
| -------------------^^^^^^^^^^^^^^^^^-
| |
| index out of bounds: the len is 3 but the index is 42
|

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error
--> $DIR/issue-50814.rs:13:5
--> $DIR/issue-50814.rs:13:21
|
LL | const MAX: u8 = A::MAX + B::MAX;
| ^^^^^^^^^^^^^^^^---------------^
| ----------------^^^^^^^^^^^^^^^-
| |
| attempt to add with overflow
|

View file

@ -50,11 +50,15 @@ warning: reaching this expression at runtime will panic or abort
--> $DIR/promoted_errors.rs:14:20
|
LL | println!("{}", 1/(false as u32));
| ^^^^^^^^^^^^^^^^ attempt to divide by zero
| ^^^^^^^^^^^^^^^^
| |
| attempt to divide by zero
warning: reaching this expression at runtime will panic or abort
--> $DIR/promoted_errors.rs:9:20
|
LL | println!("{}", 1/(1-1));
| ^^^^^^^ attempt to divide by zero
| ^^^^^^^
| |
| attempt to divide by zero

View file

@ -1,8 +1,8 @@
warning: any use of this value will cause an error
--> $DIR/pub_const_err.rs:6:1
--> $DIR/pub_const_err.rs:6:20
|
LL | pub const Z: u32 = 0 - 1;
| ^^^^^^^^^^^^^^^^^^^-----^
| -------------------^^^^^-
| |
| attempt to subtract with overflow
|

View file

@ -1,8 +1,8 @@
warning: any use of this value will cause an error
--> $DIR/pub_const_err_bin.rs:4:1
--> $DIR/pub_const_err_bin.rs:4:20
|
LL | pub const Z: u32 = 0 - 1;
| ^^^^^^^^^^^^^^^^^^^-----^
| -------------------^^^^^-
| |
| attempt to subtract with overflow
|

View file

@ -1,10 +1,10 @@
warning: due to multiple output types requested, the explicitly specified output file name will be adapted for each output type
error: any use of this value will cause an error
--> $DIR/unused-broken-const.rs:5:1
--> $DIR/unused-broken-const.rs:5:18
|
LL | const FOO: i32 = [][0];
| ^^^^^^^^^^^^^^^^^-----^
| -----------------^^^^^-
| |
| index out of bounds: the len is 0 but the index is 0
|

View file

@ -1,322 +1,322 @@
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:14:1
--> $DIR/const-int-unchecked.rs:14:29
|
LL | const SHL_U8: u8 = unsafe { intrinsics::unchecked_shl(5_u8, 8) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^
| ----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 8 in unchecked_shl
|
= note: #[deny(const_err)] on by default
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:16:1
--> $DIR/const-int-unchecked.rs:16:31
|
LL | const SHL_U16: u16 = unsafe { intrinsics::unchecked_shl(5_u16, 16) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 16 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:18:1
--> $DIR/const-int-unchecked.rs:18:31
|
LL | const SHL_U32: u32 = unsafe { intrinsics::unchecked_shl(5_u32, 32) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 32 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:20:1
--> $DIR/const-int-unchecked.rs:20:31
|
LL | const SHL_U64: u64 = unsafe { intrinsics::unchecked_shl(5_u64, 64) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 64 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:22:1
--> $DIR/const-int-unchecked.rs:22:33
|
LL | const SHL_U128: u128 = unsafe { intrinsics::unchecked_shl(5_u128, 128) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------^^^
| --------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 128 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:27:1
--> $DIR/const-int-unchecked.rs:27:29
|
LL | const SHL_I8: i8 = unsafe { intrinsics::unchecked_shl(5_i8, 8) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^
| ----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 8 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:29:1
--> $DIR/const-int-unchecked.rs:29:31
|
LL | const SHL_I16: i16 = unsafe { intrinsics::unchecked_shl(5_16, 16) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 16 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:31:1
--> $DIR/const-int-unchecked.rs:31:31
|
LL | const SHL_I32: i32 = unsafe { intrinsics::unchecked_shl(5_i32, 32) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 32 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:33:1
--> $DIR/const-int-unchecked.rs:33:31
|
LL | const SHL_I64: i64 = unsafe { intrinsics::unchecked_shl(5_i64, 64) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 64 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:35:1
--> $DIR/const-int-unchecked.rs:35:33
|
LL | const SHL_I128: i128 = unsafe { intrinsics::unchecked_shl(5_i128, 128) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------^^^
| --------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 128 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:40:1
--> $DIR/const-int-unchecked.rs:40:33
|
LL | const SHL_I8_NEG: i8 = unsafe { intrinsics::unchecked_shl(5_i8, -1) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^
| --------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 255 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:42:1
--> $DIR/const-int-unchecked.rs:42:35
|
LL | const SHL_I16_NEG: i16 = unsafe { intrinsics::unchecked_shl(5_16, -1) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 65535 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:44:1
--> $DIR/const-int-unchecked.rs:44:35
|
LL | const SHL_I32_NEG: i32 = unsafe { intrinsics::unchecked_shl(5_i32, -1) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 4294967295 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:46:1
--> $DIR/const-int-unchecked.rs:46:35
|
LL | const SHL_I64_NEG: i64 = unsafe { intrinsics::unchecked_shl(5_i64, -1) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 18446744073709551615 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:48:1
--> $DIR/const-int-unchecked.rs:48:37
|
LL | const SHL_I128_NEG: i128 = unsafe { intrinsics::unchecked_shl(5_i128, -1) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------^^^
| ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 340282366920938463463374607431768211455 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:54:1
--> $DIR/const-int-unchecked.rs:54:40
|
LL | const SHL_I8_NEG_RANDOM: i8 = unsafe { intrinsics::unchecked_shl(5_i8, -6) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^
| ---------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 250 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:56:1
--> $DIR/const-int-unchecked.rs:56:42
|
LL | const SHL_I16_NEG_RANDOM: i16 = unsafe { intrinsics::unchecked_shl(5_16, -13) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| -----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 65523 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:58:1
--> $DIR/const-int-unchecked.rs:58:42
|
LL | const SHL_I32_NEG_RANDOM: i32 = unsafe { intrinsics::unchecked_shl(5_i32, -25) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------^^^
| -----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 4294967271 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:60:1
--> $DIR/const-int-unchecked.rs:60:42
|
LL | const SHL_I64_NEG_RANDOM: i64 = unsafe { intrinsics::unchecked_shl(5_i64, -30) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------^^^
| -----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 18446744073709551586 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:62:1
--> $DIR/const-int-unchecked.rs:62:44
|
LL | const SHL_I128_NEG_RANDOM: i128 = unsafe { intrinsics::unchecked_shl(5_i128, -93) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------^^^
| -------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 340282366920938463463374607431768211363 in unchecked_shl
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:69:1
--> $DIR/const-int-unchecked.rs:69:29
|
LL | const SHR_U8: u8 = unsafe { intrinsics::unchecked_shr(5_u8, 8) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^
| ----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 8 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:71:1
--> $DIR/const-int-unchecked.rs:71:31
|
LL | const SHR_U16: u16 = unsafe { intrinsics::unchecked_shr(5_u16, 16) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 16 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:73:1
--> $DIR/const-int-unchecked.rs:73:31
|
LL | const SHR_U32: u32 = unsafe { intrinsics::unchecked_shr(5_u32, 32) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 32 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:75:1
--> $DIR/const-int-unchecked.rs:75:31
|
LL | const SHR_U64: u64 = unsafe { intrinsics::unchecked_shr(5_u64, 64) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 64 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:77:1
--> $DIR/const-int-unchecked.rs:77:33
|
LL | const SHR_U128: u128 = unsafe { intrinsics::unchecked_shr(5_u128, 128) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------^^^
| --------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 128 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:82:1
--> $DIR/const-int-unchecked.rs:82:29
|
LL | const SHR_I8: i8 = unsafe { intrinsics::unchecked_shr(5_i8, 8) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------^^^
| ----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 8 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:84:1
--> $DIR/const-int-unchecked.rs:84:31
|
LL | const SHR_I16: i16 = unsafe { intrinsics::unchecked_shr(5_16, 16) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 16 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:86:1
--> $DIR/const-int-unchecked.rs:86:31
|
LL | const SHR_I32: i32 = unsafe { intrinsics::unchecked_shr(5_i32, 32) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 32 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:88:1
--> $DIR/const-int-unchecked.rs:88:31
|
LL | const SHR_I64: i64 = unsafe { intrinsics::unchecked_shr(5_i64, 64) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 64 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:90:1
--> $DIR/const-int-unchecked.rs:90:33
|
LL | const SHR_I128: i128 = unsafe { intrinsics::unchecked_shr(5_i128, 128) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------^^^
| --------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 128 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:95:1
--> $DIR/const-int-unchecked.rs:95:33
|
LL | const SHR_I8_NEG: i8 = unsafe { intrinsics::unchecked_shr(5_i8, -1) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^
| --------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 255 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:97:1
--> $DIR/const-int-unchecked.rs:97:35
|
LL | const SHR_I16_NEG: i16 = unsafe { intrinsics::unchecked_shr(5_16, -1) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 65535 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:99:1
--> $DIR/const-int-unchecked.rs:99:35
|
LL | const SHR_I32_NEG: i32 = unsafe { intrinsics::unchecked_shr(5_i32, -1) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 4294967295 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:101:1
--> $DIR/const-int-unchecked.rs:101:35
|
LL | const SHR_I64_NEG: i64 = unsafe { intrinsics::unchecked_shr(5_i64, -1) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 18446744073709551615 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:103:1
--> $DIR/const-int-unchecked.rs:103:37
|
LL | const SHR_I128_NEG: i128 = unsafe { intrinsics::unchecked_shr(5_i128, -1) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------^^^
| ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 340282366920938463463374607431768211455 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:109:1
--> $DIR/const-int-unchecked.rs:109:40
|
LL | const SHR_I8_NEG_RANDOM: i8 = unsafe { intrinsics::unchecked_shr(5_i8, -6) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^
| ---------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 250 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:111:1
--> $DIR/const-int-unchecked.rs:111:42
|
LL | const SHR_I16_NEG_RANDOM: i16 = unsafe { intrinsics::unchecked_shr(5_16, -13) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^
| -----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 65523 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:113:1
--> $DIR/const-int-unchecked.rs:113:42
|
LL | const SHR_I32_NEG_RANDOM: i32 = unsafe { intrinsics::unchecked_shr(5_i32, -25) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------^^^
| -----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 4294967271 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:115:1
--> $DIR/const-int-unchecked.rs:115:42
|
LL | const SHR_I64_NEG_RANDOM: i64 = unsafe { intrinsics::unchecked_shr(5_i64, -30) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------^^^
| -----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 18446744073709551586 in unchecked_shr
error: any use of this value will cause an error
--> $DIR/const-int-unchecked.rs:117:1
--> $DIR/const-int-unchecked.rs:117:44
|
LL | const SHR_I128_NEG_RANDOM: i128 = unsafe { intrinsics::unchecked_shr(5_i128, -93) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------^^^
| -------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
| |
| Overflowing shift by 340282366920938463463374607431768211363 in unchecked_shr

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error
--> $DIR/const-len-underflow-separate-spans.rs:7:1
--> $DIR/const-len-underflow-separate-spans.rs:7:20
|
LL | const LEN: usize = ONE - TWO;
| ^^^^^^^^^^^^^^^^^^^---------^
| -------------------^^^^^^^^^-
| |
| attempt to subtract with overflow
|

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error
--> $DIR/const-slice-oob.rs:4:1
--> $DIR/const-slice-oob.rs:4:18
|
LL | const BAR: u32 = FOO[5];
| ^^^^^^^^^^^^^^^^^------^
| -----------------^^^^^^-
| |
| index out of bounds: the len is 3 but the index is 5
|

View file

@ -1,11 +1,17 @@
error: any use of this value will cause an error
--> $DIR/dangling-alloc-id-ice.rs:8:1
|
LL | / const FOO: &() = {
LL | | let y = ();
LL | | unsafe { Foo { y: &y }.long_live_the_unit }
LL | | };
| |__^ type validation failed: encountered dangling pointer in final constant
LL | const FOO: &() = {
| _^
| |_|
| ||
LL | || let y = ();
LL | || unsafe { Foo { y: &y }.long_live_the_unit }
LL | || };
| || ^
| ||__|
| |___type validation failed: encountered dangling pointer in final constant
|
|
= note: #[deny(const_err)] on by default

View file

@ -1,11 +1,17 @@
error: any use of this value will cause an error
--> $DIR/dangling_raw_ptr.rs:1:1
|
LL | / const FOO: *const u32 = {
LL | | let x = 42;
LL | | &x
LL | | };
| |__^ type validation failed: encountered dangling pointer in final constant
LL | const FOO: *const u32 = {
| _^
| |_|
| ||
LL | || let x = 42;
LL | || &x
LL | || };
| || ^
| ||__|
| |___type validation failed: encountered dangling pointer in final constant
|
|
= note: #[deny(const_err)] on by default

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error
--> $DIR/E0396-fixed.rs:5:1
--> $DIR/E0396-fixed.rs:5:28
|
LL | const VALUE: u8 = unsafe { *REG_ADDR };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^---------^^^
| ---------------------------^^^^^^^^^---
| |
| a memory access tried to interpret some bytes as a pointer
|

View file

@ -5,10 +5,10 @@ LL | const NUM: u8 = xyz();
| ^^^^^
error: any use of this value will cause an error
--> $DIR/issue-43105.rs:3:1
--> $DIR/issue-43105.rs:3:17
|
LL | const NUM: u8 = xyz();
| ^^^^^^^^^^^^^^^^-----^
| ----------------^^^^^-
| |
| calling non-const function `xyz`
|