提交 8e043950 编写于 作者: E Esteban Küber

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

上级 1b0ab0b8
......@@ -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
},
......
......@@ -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
......
......@@ -237,6 +237,7 @@ fn use_ecx<F, T>(
self.ecx.tcx,
"this expression will panic at runtime",
lint_root,
None,
);
}
}
......
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
|
......
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
|
......
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
......
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
......
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
|
......
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
|
......
......@@ -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);
......
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
......@@ -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);
......
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
......@@ -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);
......
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
......@@ -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
......
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
|
......
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
|
......
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
|
......
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
......
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
......
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
|
......
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
|
......
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
|
......
......@@ -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
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
|
......
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
|
......
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
|
......
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
......
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
|
......
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
|
......
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
......
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
......
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
|
......
......@@ -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`
|
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册