Merge from rustc
This commit is contained in:
commit
65e76849ac
183 changed files with 2692 additions and 874 deletions
|
|
@ -61,7 +61,6 @@ impl Tool {
|
|||
artifacts_server,
|
||||
artifacts_with_llvm_assertions_server,
|
||||
git_merge_commit_email,
|
||||
git_repository,
|
||||
nightly_branch,
|
||||
} = &self.config;
|
||||
|
||||
|
|
@ -72,7 +71,6 @@ impl Tool {
|
|||
artifacts_with_llvm_assertions_server
|
||||
));
|
||||
file_content.push_str(&format!("git_merge_commit_email={}\n", git_merge_commit_email));
|
||||
file_content.push_str(&format!("git_repository={}\n", git_repository));
|
||||
file_content.push_str(&format!("nightly_branch={}\n", nightly_branch));
|
||||
|
||||
file_content.push_str("\n");
|
||||
|
|
|
|||
|
|
@ -1,7 +1,13 @@
|
|||
//@aux-build:proc_macro_attr.rs
|
||||
|
||||
#![warn(clippy::blocks_in_conditions)]
|
||||
#![allow(unused, clippy::needless_if, clippy::missing_transmute_annotations)]
|
||||
#![allow(
|
||||
unused,
|
||||
unnecessary_transmutes,
|
||||
clippy::let_and_return,
|
||||
clippy::needless_if,
|
||||
clippy::missing_transmute_annotations
|
||||
)]
|
||||
#![warn(clippy::nonminimal_bool)]
|
||||
|
||||
macro_rules! blocky {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,13 @@
|
|||
//@aux-build:proc_macro_attr.rs
|
||||
|
||||
#![warn(clippy::blocks_in_conditions)]
|
||||
#![allow(unused, clippy::needless_if, clippy::missing_transmute_annotations)]
|
||||
#![allow(
|
||||
unused,
|
||||
unnecessary_transmutes,
|
||||
clippy::let_and_return,
|
||||
clippy::needless_if,
|
||||
clippy::missing_transmute_annotations
|
||||
)]
|
||||
#![warn(clippy::nonminimal_bool)]
|
||||
|
||||
macro_rules! blocky {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
error: in an `if` condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a `let`
|
||||
--> tests/ui/blocks_in_conditions.rs:25:5
|
||||
--> tests/ui/blocks_in_conditions.rs:31:5
|
||||
|
|
||||
LL | / if {
|
||||
LL | |
|
||||
|
|
@ -20,13 +20,13 @@ LL ~ }; if res {
|
|||
|
|
||||
|
||||
error: omit braces around single expression condition
|
||||
--> tests/ui/blocks_in_conditions.rs:37:8
|
||||
--> tests/ui/blocks_in_conditions.rs:43:8
|
||||
|
|
||||
LL | if { true } { 6 } else { 10 }
|
||||
| ^^^^^^^^ help: try: `true`
|
||||
|
||||
error: this boolean expression can be simplified
|
||||
--> tests/ui/blocks_in_conditions.rs:43:8
|
||||
--> tests/ui/blocks_in_conditions.rs:49:8
|
||||
|
|
||||
LL | if true && x == 3 { 6 } else { 10 }
|
||||
| ^^^^^^^^^^^^^^ help: try: `x == 3`
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
//@ check-pass
|
||||
|
||||
#![allow(dead_code, unused_variables, invalid_null_arguments)]
|
||||
#![allow(dead_code, unused_variables, invalid_null_arguments, unnecessary_transmutes)]
|
||||
#![allow(clippy::unnecessary_cast, clippy::missing_transmute_annotations)]
|
||||
|
||||
/// Should not trigger an ICE in `SpanlessEq` / `consts::constant`
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#![allow(
|
||||
dead_code,
|
||||
clippy::borrow_as_ptr,
|
||||
unnecessary_transmutes,
|
||||
clippy::needless_lifetimes,
|
||||
clippy::missing_transmute_annotations
|
||||
)]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
error: transmute from a reference to a pointer
|
||||
--> tests/ui/transmute.rs:32:27
|
||||
--> tests/ui/transmute.rs:33:27
|
||||
|
|
||||
LL | let _: *const T = core::mem::transmute(t);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `t as *const T`
|
||||
|
|
@ -8,61 +8,61 @@ LL | let _: *const T = core::mem::transmute(t);
|
|||
= help: to override `-D warnings` add `#[allow(clippy::useless_transmute)]`
|
||||
|
||||
error: transmute from a reference to a pointer
|
||||
--> tests/ui/transmute.rs:35:25
|
||||
--> tests/ui/transmute.rs:36:25
|
||||
|
|
||||
LL | let _: *mut T = core::mem::transmute(t);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `t as *const T as *mut T`
|
||||
|
||||
error: transmute from a reference to a pointer
|
||||
--> tests/ui/transmute.rs:38:27
|
||||
--> tests/ui/transmute.rs:39:27
|
||||
|
|
||||
LL | let _: *const U = core::mem::transmute(t);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `t as *const T as *const U`
|
||||
|
||||
error: transmute from a type (`std::vec::Vec<i32>`) to itself
|
||||
--> tests/ui/transmute.rs:46:27
|
||||
--> tests/ui/transmute.rs:47:27
|
||||
|
|
||||
LL | let _: Vec<i32> = core::mem::transmute(my_vec());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: transmute from a type (`std::vec::Vec<i32>`) to itself
|
||||
--> tests/ui/transmute.rs:49:27
|
||||
--> tests/ui/transmute.rs:50:27
|
||||
|
|
||||
LL | let _: Vec<i32> = core::mem::transmute(my_vec());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: transmute from a type (`std::vec::Vec<i32>`) to itself
|
||||
--> tests/ui/transmute.rs:52:27
|
||||
--> tests/ui/transmute.rs:53:27
|
||||
|
|
||||
LL | let _: Vec<i32> = std::mem::transmute(my_vec());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: transmute from a type (`std::vec::Vec<i32>`) to itself
|
||||
--> tests/ui/transmute.rs:55:27
|
||||
--> tests/ui/transmute.rs:56:27
|
||||
|
|
||||
LL | let _: Vec<i32> = std::mem::transmute(my_vec());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: transmute from a type (`std::vec::Vec<i32>`) to itself
|
||||
--> tests/ui/transmute.rs:58:27
|
||||
--> tests/ui/transmute.rs:59:27
|
||||
|
|
||||
LL | let _: Vec<i32> = my_transmute(my_vec());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: transmute from an integer to a pointer
|
||||
--> tests/ui/transmute.rs:61:31
|
||||
--> tests/ui/transmute.rs:62:31
|
||||
|
|
||||
LL | let _: *const usize = std::mem::transmute(5_isize);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `5_isize as *const usize`
|
||||
|
||||
error: transmute from an integer to a pointer
|
||||
--> tests/ui/transmute.rs:66:31
|
||||
--> tests/ui/transmute.rs:67:31
|
||||
|
|
||||
LL | let _: *const usize = std::mem::transmute(1 + 1usize);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(1 + 1usize) as *const usize`
|
||||
|
||||
error: transmute from a type (`*const Usize`) to the type that it points to (`Usize`)
|
||||
--> tests/ui/transmute.rs:98:24
|
||||
--> tests/ui/transmute.rs:99:24
|
||||
|
|
||||
LL | let _: Usize = core::mem::transmute(int_const_ptr);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
@ -71,25 +71,25 @@ LL | let _: Usize = core::mem::transmute(int_const_ptr);
|
|||
= help: to override `-D warnings` add `#[allow(clippy::crosspointer_transmute)]`
|
||||
|
||||
error: transmute from a type (`*mut Usize`) to the type that it points to (`Usize`)
|
||||
--> tests/ui/transmute.rs:101:24
|
||||
--> tests/ui/transmute.rs:102:24
|
||||
|
|
||||
LL | let _: Usize = core::mem::transmute(int_mut_ptr);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: transmute from a type (`Usize`) to a pointer to that type (`*const Usize`)
|
||||
--> tests/ui/transmute.rs:104:31
|
||||
--> tests/ui/transmute.rs:105:31
|
||||
|
|
||||
LL | let _: *const Usize = core::mem::transmute(my_int());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: transmute from a type (`Usize`) to a pointer to that type (`*mut Usize`)
|
||||
--> tests/ui/transmute.rs:107:29
|
||||
--> tests/ui/transmute.rs:108:29
|
||||
|
|
||||
LL | let _: *mut Usize = core::mem::transmute(my_int());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: transmute from a `u8` to a `bool`
|
||||
--> tests/ui/transmute.rs:114:28
|
||||
--> tests/ui/transmute.rs:115:28
|
||||
|
|
||||
LL | let _: bool = unsafe { std::mem::transmute(0_u8) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `0_u8 != 0`
|
||||
|
|
@ -98,7 +98,7 @@ LL | let _: bool = unsafe { std::mem::transmute(0_u8) };
|
|||
= help: to override `-D warnings` add `#[allow(clippy::transmute_int_to_bool)]`
|
||||
|
||||
error: transmute from a `u16` to a `f16`
|
||||
--> tests/ui/transmute.rs:121:31
|
||||
--> tests/ui/transmute.rs:122:31
|
||||
|
|
||||
LL | let _: f16 = unsafe { std::mem::transmute(0_u16) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f16::from_bits(0_u16)`
|
||||
|
|
@ -107,97 +107,97 @@ LL | let _: f16 = unsafe { std::mem::transmute(0_u16) };
|
|||
= help: to override `-D warnings` add `#[allow(clippy::transmute_int_to_float)]`
|
||||
|
||||
error: transmute from a `i16` to a `f16`
|
||||
--> tests/ui/transmute.rs:124:31
|
||||
--> tests/ui/transmute.rs:125:31
|
||||
|
|
||||
LL | let _: f16 = unsafe { std::mem::transmute(0_i16) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f16::from_bits(0_i16 as u16)`
|
||||
|
||||
error: transmute from a `u32` to a `f32`
|
||||
--> tests/ui/transmute.rs:127:31
|
||||
--> tests/ui/transmute.rs:128:31
|
||||
|
|
||||
LL | let _: f32 = unsafe { std::mem::transmute(0_u32) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f32::from_bits(0_u32)`
|
||||
|
||||
error: transmute from a `i32` to a `f32`
|
||||
--> tests/ui/transmute.rs:130:31
|
||||
--> tests/ui/transmute.rs:131:31
|
||||
|
|
||||
LL | let _: f32 = unsafe { std::mem::transmute(0_i32) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f32::from_bits(0_i32 as u32)`
|
||||
|
||||
error: transmute from a `u64` to a `f64`
|
||||
--> tests/ui/transmute.rs:133:31
|
||||
--> tests/ui/transmute.rs:134:31
|
||||
|
|
||||
LL | let _: f64 = unsafe { std::mem::transmute(0_u64) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f64::from_bits(0_u64)`
|
||||
|
||||
error: transmute from a `i64` to a `f64`
|
||||
--> tests/ui/transmute.rs:136:31
|
||||
--> tests/ui/transmute.rs:137:31
|
||||
|
|
||||
LL | let _: f64 = unsafe { std::mem::transmute(0_i64) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f64::from_bits(0_i64 as u64)`
|
||||
|
||||
error: transmute from a `u128` to a `f128`
|
||||
--> tests/ui/transmute.rs:139:32
|
||||
--> tests/ui/transmute.rs:140:32
|
||||
|
|
||||
LL | let _: f128 = unsafe { std::mem::transmute(0_u128) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f128::from_bits(0_u128)`
|
||||
|
||||
error: transmute from a `i128` to a `f128`
|
||||
--> tests/ui/transmute.rs:142:32
|
||||
--> tests/ui/transmute.rs:143:32
|
||||
|
|
||||
LL | let _: f128 = unsafe { std::mem::transmute(0_i128) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f128::from_bits(0_i128 as u128)`
|
||||
|
||||
error: transmute from a `u16` to a `f16`
|
||||
--> tests/ui/transmute.rs:147:39
|
||||
--> tests/ui/transmute.rs:148:39
|
||||
|
|
||||
LL | const VALUE16: f16 = unsafe { std::mem::transmute(0_u16) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f16::from_bits(0_u16)`
|
||||
|
||||
error: transmute from a `u32` to a `f32`
|
||||
--> tests/ui/transmute.rs:150:39
|
||||
--> tests/ui/transmute.rs:151:39
|
||||
|
|
||||
LL | const VALUE32: f32 = unsafe { std::mem::transmute(0_u32) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f32::from_bits(0_u32)`
|
||||
|
||||
error: transmute from a `i64` to a `f64`
|
||||
--> tests/ui/transmute.rs:153:39
|
||||
--> tests/ui/transmute.rs:154:39
|
||||
|
|
||||
LL | const VALUE64: f64 = unsafe { std::mem::transmute(0_i64) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f64::from_bits(0_i64 as u64)`
|
||||
|
||||
error: transmute from a `i128` to a `f128`
|
||||
--> tests/ui/transmute.rs:156:41
|
||||
--> tests/ui/transmute.rs:157:41
|
||||
|
|
||||
LL | const VALUE128: f128 = unsafe { std::mem::transmute(0_i128) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f128::from_bits(0_i128 as u128)`
|
||||
|
||||
error: transmute from a `i16` to a `f16`
|
||||
--> tests/ui/transmute.rs:160:22
|
||||
--> tests/ui/transmute.rs:161:22
|
||||
|
|
||||
LL | unsafe { std::mem::transmute(v) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f16::from_bits(v as u16)`
|
||||
|
||||
error: transmute from a `i32` to a `f32`
|
||||
--> tests/ui/transmute.rs:165:22
|
||||
--> tests/ui/transmute.rs:166:22
|
||||
|
|
||||
LL | unsafe { std::mem::transmute(v) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f32::from_bits(v as u32)`
|
||||
|
||||
error: transmute from a `u64` to a `f64`
|
||||
--> tests/ui/transmute.rs:170:22
|
||||
--> tests/ui/transmute.rs:171:22
|
||||
|
|
||||
LL | unsafe { std::mem::transmute(v) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f64::from_bits(v)`
|
||||
|
||||
error: transmute from a `u128` to a `f128`
|
||||
--> tests/ui/transmute.rs:175:22
|
||||
--> tests/ui/transmute.rs:176:22
|
||||
|
|
||||
LL | unsafe { std::mem::transmute(v) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f128::from_bits(v)`
|
||||
|
||||
error: transmute from a `u8` to a `[u8; 1]`
|
||||
--> tests/ui/transmute.rs:184:30
|
||||
--> tests/ui/transmute.rs:185:30
|
||||
|
|
||||
LL | let _: [u8; 1] = std::mem::transmute(0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0u8.to_ne_bytes()`
|
||||
|
|
@ -206,121 +206,121 @@ LL | let _: [u8; 1] = std::mem::transmute(0u8);
|
|||
= help: to override `-D warnings` add `#[allow(clippy::transmute_num_to_bytes)]`
|
||||
|
||||
error: transmute from a `u32` to a `[u8; 4]`
|
||||
--> tests/ui/transmute.rs:187:30
|
||||
--> tests/ui/transmute.rs:188:30
|
||||
|
|
||||
LL | let _: [u8; 4] = std::mem::transmute(0u32);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0u32.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `u128` to a `[u8; 16]`
|
||||
--> tests/ui/transmute.rs:190:31
|
||||
--> tests/ui/transmute.rs:191:31
|
||||
|
|
||||
LL | let _: [u8; 16] = std::mem::transmute(0u128);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0u128.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `i8` to a `[u8; 1]`
|
||||
--> tests/ui/transmute.rs:193:30
|
||||
--> tests/ui/transmute.rs:194:30
|
||||
|
|
||||
LL | let _: [u8; 1] = std::mem::transmute(0i8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0i8.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `i32` to a `[u8; 4]`
|
||||
--> tests/ui/transmute.rs:196:30
|
||||
--> tests/ui/transmute.rs:197:30
|
||||
|
|
||||
LL | let _: [u8; 4] = std::mem::transmute(0i32);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0i32.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `i128` to a `[u8; 16]`
|
||||
--> tests/ui/transmute.rs:199:31
|
||||
--> tests/ui/transmute.rs:200:31
|
||||
|
|
||||
LL | let _: [u8; 16] = std::mem::transmute(0i128);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0i128.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `f16` to a `[u8; 2]`
|
||||
--> tests/ui/transmute.rs:202:30
|
||||
--> tests/ui/transmute.rs:203:30
|
||||
|
|
||||
LL | let _: [u8; 2] = std::mem::transmute(0.0f16);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0.0f16.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `f32` to a `[u8; 4]`
|
||||
--> tests/ui/transmute.rs:205:30
|
||||
--> tests/ui/transmute.rs:206:30
|
||||
|
|
||||
LL | let _: [u8; 4] = std::mem::transmute(0.0f32);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0.0f32.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `f64` to a `[u8; 8]`
|
||||
--> tests/ui/transmute.rs:208:30
|
||||
--> tests/ui/transmute.rs:209:30
|
||||
|
|
||||
LL | let _: [u8; 8] = std::mem::transmute(0.0f64);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0.0f64.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `f128` to a `[u8; 16]`
|
||||
--> tests/ui/transmute.rs:211:31
|
||||
--> tests/ui/transmute.rs:212:31
|
||||
|
|
||||
LL | let _: [u8; 16] = std::mem::transmute(0.0f128);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0.0f128.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `u8` to a `[u8; 1]`
|
||||
--> tests/ui/transmute.rs:217:30
|
||||
--> tests/ui/transmute.rs:218:30
|
||||
|
|
||||
LL | let _: [u8; 1] = std::mem::transmute(0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0u8.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `u32` to a `[u8; 4]`
|
||||
--> tests/ui/transmute.rs:220:30
|
||||
--> tests/ui/transmute.rs:221:30
|
||||
|
|
||||
LL | let _: [u8; 4] = std::mem::transmute(0u32);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0u32.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `u128` to a `[u8; 16]`
|
||||
--> tests/ui/transmute.rs:223:31
|
||||
--> tests/ui/transmute.rs:224:31
|
||||
|
|
||||
LL | let _: [u8; 16] = std::mem::transmute(0u128);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0u128.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `i8` to a `[u8; 1]`
|
||||
--> tests/ui/transmute.rs:226:30
|
||||
--> tests/ui/transmute.rs:227:30
|
||||
|
|
||||
LL | let _: [u8; 1] = std::mem::transmute(0i8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0i8.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `i32` to a `[u8; 4]`
|
||||
--> tests/ui/transmute.rs:229:30
|
||||
--> tests/ui/transmute.rs:230:30
|
||||
|
|
||||
LL | let _: [u8; 4] = std::mem::transmute(0i32);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0i32.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `i128` to a `[u8; 16]`
|
||||
--> tests/ui/transmute.rs:232:31
|
||||
--> tests/ui/transmute.rs:233:31
|
||||
|
|
||||
LL | let _: [u8; 16] = std::mem::transmute(0i128);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0i128.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `f16` to a `[u8; 2]`
|
||||
--> tests/ui/transmute.rs:235:30
|
||||
--> tests/ui/transmute.rs:236:30
|
||||
|
|
||||
LL | let _: [u8; 2] = std::mem::transmute(0.0f16);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0.0f16.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `f32` to a `[u8; 4]`
|
||||
--> tests/ui/transmute.rs:238:30
|
||||
--> tests/ui/transmute.rs:239:30
|
||||
|
|
||||
LL | let _: [u8; 4] = std::mem::transmute(0.0f32);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0.0f32.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `f64` to a `[u8; 8]`
|
||||
--> tests/ui/transmute.rs:241:30
|
||||
--> tests/ui/transmute.rs:242:30
|
||||
|
|
||||
LL | let _: [u8; 8] = std::mem::transmute(0.0f64);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0.0f64.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `f128` to a `[u8; 16]`
|
||||
--> tests/ui/transmute.rs:244:31
|
||||
--> tests/ui/transmute.rs:245:31
|
||||
|
|
||||
LL | let _: [u8; 16] = std::mem::transmute(0.0f128);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `to_ne_bytes()`: `0.0f128.to_ne_bytes()`
|
||||
|
||||
error: transmute from a `&[u8]` to a `&str`
|
||||
--> tests/ui/transmute.rs:253:28
|
||||
--> tests/ui/transmute.rs:254:28
|
||||
|
|
||||
LL | let _: &str = unsafe { std::mem::transmute(B) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::str::from_utf8(B).unwrap()`
|
||||
|
|
@ -329,13 +329,13 @@ LL | let _: &str = unsafe { std::mem::transmute(B) };
|
|||
= help: to override `-D warnings` add `#[allow(clippy::transmute_bytes_to_str)]`
|
||||
|
||||
error: transmute from a `&mut [u8]` to a `&mut str`
|
||||
--> tests/ui/transmute.rs:256:32
|
||||
--> tests/ui/transmute.rs:257:32
|
||||
|
|
||||
LL | let _: &mut str = unsafe { std::mem::transmute(mb) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::str::from_utf8_mut(mb).unwrap()`
|
||||
|
||||
error: transmute from a `&[u8]` to a `&str`
|
||||
--> tests/ui/transmute.rs:259:30
|
||||
--> tests/ui/transmute.rs:260:30
|
||||
|
|
||||
LL | const _: &str = unsafe { std::mem::transmute(B) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::str::from_utf8_unchecked(B)`
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#![warn(clippy::transmute_float_to_int)]
|
||||
#![allow(clippy::missing_transmute_annotations)]
|
||||
#![allow(clippy::missing_transmute_annotations, unnecessary_transmutes)]
|
||||
#![feature(f128)]
|
||||
#![feature(f16)]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#![warn(clippy::transmute_float_to_int)]
|
||||
#![allow(clippy::missing_transmute_annotations)]
|
||||
#![allow(clippy::missing_transmute_annotations, unnecessary_transmutes)]
|
||||
#![feature(f128)]
|
||||
#![feature(f16)]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#![warn(clippy::transmute_int_to_char)]
|
||||
#![allow(clippy::missing_transmute_annotations)]
|
||||
#![allow(clippy::missing_transmute_annotations, unnecessary_transmutes)]
|
||||
|
||||
fn int_to_char() {
|
||||
let _: char = unsafe { std::char::from_u32(0_u32).unwrap() };
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#![warn(clippy::transmute_int_to_char)]
|
||||
#![allow(clippy::missing_transmute_annotations)]
|
||||
#![allow(clippy::missing_transmute_annotations, unnecessary_transmutes)]
|
||||
|
||||
fn int_to_char() {
|
||||
let _: char = unsafe { std::mem::transmute(0_u32) };
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#![no_std]
|
||||
#![feature(lang_items)]
|
||||
#![warn(clippy::transmute_int_to_char)]
|
||||
#![allow(clippy::missing_transmute_annotations)]
|
||||
#![allow(clippy::missing_transmute_annotations, unnecessary_transmutes)]
|
||||
|
||||
use core::panic::PanicInfo;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#![no_std]
|
||||
#![feature(lang_items)]
|
||||
#![warn(clippy::transmute_int_to_char)]
|
||||
#![allow(clippy::missing_transmute_annotations)]
|
||||
#![allow(clippy::missing_transmute_annotations, unnecessary_transmutes)]
|
||||
|
||||
use core::panic::PanicInfo;
|
||||
|
||||
|
|
|
|||
|
|
@ -399,7 +399,6 @@ pub struct Config {
|
|||
pub nocapture: bool,
|
||||
|
||||
// Needed both to construct build_helper::git::GitConfig
|
||||
pub git_repository: String,
|
||||
pub nightly_branch: String,
|
||||
pub git_merge_commit_email: String,
|
||||
|
||||
|
|
@ -514,7 +513,6 @@ impl Config {
|
|||
|
||||
pub fn git_config(&self) -> GitConfig<'_> {
|
||||
GitConfig {
|
||||
git_repository: &self.git_repository,
|
||||
nightly_branch: &self.nightly_branch,
|
||||
git_merge_commit_email: &self.git_merge_commit_email,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -175,7 +175,6 @@ impl ConfigBuilder {
|
|||
self.host.as_deref().unwrap_or("x86_64-unknown-linux-gnu"),
|
||||
"--target",
|
||||
self.target.as_deref().unwrap_or("x86_64-unknown-linux-gnu"),
|
||||
"--git-repository=",
|
||||
"--nightly-branch=",
|
||||
"--git-merge-commit-email=",
|
||||
"--minicore-path=",
|
||||
|
|
|
|||
|
|
@ -188,7 +188,6 @@ pub fn parse_config(args: Vec<String>) -> Config {
|
|||
"run tests which rely on commit version being compiled into the binaries",
|
||||
)
|
||||
.optopt("", "edition", "default Rust edition", "EDITION")
|
||||
.reqopt("", "git-repository", "name of the git repository", "ORG/REPO")
|
||||
.reqopt("", "nightly-branch", "name of the git branch for nightly", "BRANCH")
|
||||
.reqopt(
|
||||
"",
|
||||
|
|
@ -440,7 +439,6 @@ pub fn parse_config(args: Vec<String>) -> Config {
|
|||
|
||||
nocapture: matches.opt_present("no-capture"),
|
||||
|
||||
git_repository: matches.opt_str("git-repository").unwrap(),
|
||||
nightly_branch: matches.opt_str("nightly-branch").unwrap(),
|
||||
git_merge_commit_email: matches.opt_str("git-merge-commit-email").unwrap(),
|
||||
|
||||
|
|
|
|||
|
|
@ -1710,12 +1710,16 @@ impl<'test> TestCx<'test> {
|
|||
rustc.args(&self.props.compile_flags);
|
||||
|
||||
// FIXME(jieyouxu): we should report a fatal error or warning if user wrote `-Cpanic=` with
|
||||
// something that's not `abort`, however, by moving this last we should override previous
|
||||
// `-Cpanic=`s
|
||||
// something that's not `abort` and `-Cforce-unwind-tables` with a value that is not `yes`,
|
||||
// however, by moving this last we should override previous `-Cpanic`s and
|
||||
// `-Cforce-unwind-tables`s. Note that checking here is very fragile, because we'd have to
|
||||
// account for all possible compile flag splittings (they have some... intricacies and are
|
||||
// not yet normalized).
|
||||
//
|
||||
// `minicore` requires `#![no_std]` and `#![no_core]`, which means no unwinding panics.
|
||||
if self.props.add_core_stubs {
|
||||
rustc.arg("-Cpanic=abort");
|
||||
rustc.arg("-Cforce-unwind-tables=yes");
|
||||
}
|
||||
|
||||
rustc
|
||||
|
|
|
|||
|
|
@ -391,32 +391,6 @@ pub trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
|
|||
this.write_scalar(res, dest)?;
|
||||
}
|
||||
|
||||
#[rustfmt::skip]
|
||||
| "fadd_algebraic"
|
||||
| "fsub_algebraic"
|
||||
| "fmul_algebraic"
|
||||
| "fdiv_algebraic"
|
||||
| "frem_algebraic"
|
||||
=> {
|
||||
let [a, b] = check_intrinsic_arg_count(args)?;
|
||||
let a = this.read_immediate(a)?;
|
||||
let b = this.read_immediate(b)?;
|
||||
let op = match intrinsic_name {
|
||||
"fadd_algebraic" => mir::BinOp::Add,
|
||||
"fsub_algebraic" => mir::BinOp::Sub,
|
||||
"fmul_algebraic" => mir::BinOp::Mul,
|
||||
"fdiv_algebraic" => mir::BinOp::Div,
|
||||
"frem_algebraic" => mir::BinOp::Rem,
|
||||
_ => bug!(),
|
||||
};
|
||||
let res = this.binary_op(op, &a, &b)?;
|
||||
// `binary_op` already called `generate_nan` if needed.
|
||||
// Apply a relative error of 4ULP to simulate non-deterministic precision loss
|
||||
// due to optimizations.
|
||||
let res = apply_random_float_error_to_imm(this, res, 2 /* log2(4) */)?;
|
||||
this.write_immediate(*res, dest)?;
|
||||
}
|
||||
|
||||
#[rustfmt::skip]
|
||||
| "fadd_fast"
|
||||
| "fsub_fast"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
#![feature(rustc_private)]
|
||||
#![feature(cfg_match)]
|
||||
#![feature(cell_update)]
|
||||
#![feature(float_gamma)]
|
||||
#![feature(float_erf)]
|
||||
#![feature(map_try_insert)]
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#![allow(unnecessary_transmutes)]
|
||||
fn main() {
|
||||
let _b = unsafe { std::mem::transmute::<u8, bool>(2) }; //~ ERROR: expected a boolean
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
// Make sure we find these even with many checks disabled.
|
||||
//@compile-flags: -Zmiri-disable-alignment-check -Zmiri-disable-stacked-borrows -Zmiri-disable-validation
|
||||
|
||||
#![allow(unnecessary_transmutes)]
|
||||
fn main() {
|
||||
let b = unsafe { std::mem::transmute::<u8, bool>(2) };
|
||||
let _x = b == std::hint::black_box(true); //~ ERROR: interpreting an invalid 8-bit value as a bool
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#![allow(unnecessary_transmutes)]
|
||||
fn main() {
|
||||
assert!(std::char::from_u32(-1_i32 as u32).is_none());
|
||||
let _val = match unsafe { std::mem::transmute::<i32, char>(-1) } {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
// Make sure we find these even with many checks disabled.
|
||||
//@compile-flags: -Zmiri-disable-alignment-check -Zmiri-disable-stacked-borrows -Zmiri-disable-validation
|
||||
|
||||
#![allow(unnecessary_transmutes)]
|
||||
fn main() {
|
||||
let c = 0xFFFFFFu32;
|
||||
assert!(std::char::from_u32(c).is_none());
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#![feature(f16)]
|
||||
#![allow(arithmetic_overflow)]
|
||||
#![allow(internal_features)]
|
||||
#![allow(unnecessary_transmutes)]
|
||||
|
||||
use std::any::type_name;
|
||||
use std::cmp::min;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#![allow(unnecessary_transmutes)]
|
||||
pub fn main() {
|
||||
let bytes: [u8; 8] = unsafe { ::std::mem::transmute(0u64) };
|
||||
let _val: &[u8] = &bytes;
|
||||
|
|
|
|||
|
|
@ -368,7 +368,7 @@ unsafe fn load_m256i_word<T>(data: &[T], word_index: usize) -> __m256i {
|
|||
#[target_feature(enable = "avx512f")]
|
||||
unsafe fn load_m512i_word<T>(data: &[T], word_index: usize) -> __m512i {
|
||||
let byte_offset = word_index * 64 / size_of::<T>();
|
||||
let pointer = data.as_ptr().add(byte_offset) as *const i32;
|
||||
let pointer = data.as_ptr().add(byte_offset) as *const __m512i;
|
||||
_mm512_loadu_si512(black_box(pointer))
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
// We're testing x86 target specific features
|
||||
//@only-target: x86_64 i686
|
||||
#![allow(unnecessary_transmutes)]
|
||||
|
||||
#[cfg(target_arch = "x86")]
|
||||
use std::arch::x86::*;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ use suggest_tests::get_suggestions;
|
|||
fn main() -> ExitCode {
|
||||
let modified_files = get_git_modified_files(
|
||||
&GitConfig {
|
||||
git_repository: &env("SUGGEST_TESTS_GIT_REPOSITORY"),
|
||||
nightly_branch: &env("SUGGEST_TESTS_NIGHTLY_BRANCH"),
|
||||
git_merge_commit_email: &env("SUGGEST_TESTS_MERGE_COMMIT_EMAIL"),
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue