-
Notifications
You must be signed in to change notification settings - Fork 1.7k
generate stderr file on 32bit pointer system #4690
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
6a66c9f
git quiet
tesuji 83b90d8
remove needless my_lint ui test
tesuji 94aa039
build: set up build job for i686 targets
tesuji 142b289
chore: fix and split some ui tests on 32bit system
tesuji 7156aa7
build(tests/fmt): use shared target dir
tesuji File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
// ignore-32bit | ||
#[warn( | ||
clippy::cast_precision_loss, | ||
clippy::cast_possible_truncation, | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
// ignore-64bit | ||
#[warn( | ||
clippy::cast_precision_loss, | ||
clippy::cast_possible_truncation, | ||
clippy::cast_sign_loss, | ||
clippy::cast_possible_wrap, | ||
clippy::cast_lossless | ||
)] | ||
#[allow(clippy::no_effect, clippy::unnecessary_operation)] | ||
fn main() { | ||
// Casting from *size | ||
1isize as i8; | ||
let x0 = 1isize; | ||
let x1 = 1usize; | ||
x0 as f64; | ||
x1 as f64; | ||
x0 as f32; | ||
x1 as f32; | ||
1isize as i32; | ||
1isize as u32; | ||
1usize as u32; | ||
1usize as i32; | ||
// Casting to *size | ||
1i64 as isize; | ||
1i64 as usize; | ||
1u64 as isize; | ||
1u64 as usize; | ||
1u32 as isize; | ||
1u32 as usize; // Should not trigger any lint | ||
1i32 as isize; // Neither should this | ||
1i32 as usize; | ||
// Big integer literal to float | ||
999_999_999 as f32; | ||
3_999_999_999usize as f64; | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
error: casting isize to i8 may truncate the value | ||
--> $DIR/cast_size_32bit.rs:12:5 | ||
| | ||
LL | 1isize as i8; | ||
| ^^^^^^^^^^^^ | ||
| | ||
= note: `-D clippy::cast-possible-truncation` implied by `-D warnings` | ||
|
||
error: casting isize to f64 causes a loss of precision on targets with 64-bit wide pointers (isize is 64 bits wide, but f64's mantissa is only 52 bits wide) | ||
--> $DIR/cast_size_32bit.rs:15:5 | ||
| | ||
LL | x0 as f64; | ||
| ^^^^^^^^^ | ||
| | ||
= note: `-D clippy::cast-precision-loss` implied by `-D warnings` | ||
|
||
error: casting isize to f64 may become silently lossy if you later change the type | ||
--> $DIR/cast_size_32bit.rs:15:5 | ||
| | ||
LL | x0 as f64; | ||
| ^^^^^^^^^ help: try: `f64::from(x0)` | ||
| | ||
= note: `-D clippy::cast-lossless` implied by `-D warnings` | ||
|
||
error: casting usize to f64 causes a loss of precision on targets with 64-bit wide pointers (usize is 64 bits wide, but f64's mantissa is only 52 bits wide) | ||
--> $DIR/cast_size_32bit.rs:16:5 | ||
| | ||
LL | x1 as f64; | ||
| ^^^^^^^^^ | ||
|
||
error: casting usize to f64 may become silently lossy if you later change the type | ||
--> $DIR/cast_size_32bit.rs:16:5 | ||
| | ||
LL | x1 as f64; | ||
| ^^^^^^^^^ help: try: `f64::from(x1)` | ||
|
||
error: casting isize to f32 causes a loss of precision (isize is 32 or 64 bits wide, but f32's mantissa is only 23 bits wide) | ||
--> $DIR/cast_size_32bit.rs:17:5 | ||
| | ||
LL | x0 as f32; | ||
| ^^^^^^^^^ | ||
|
||
error: casting usize to f32 causes a loss of precision (usize is 32 or 64 bits wide, but f32's mantissa is only 23 bits wide) | ||
--> $DIR/cast_size_32bit.rs:18:5 | ||
| | ||
LL | x1 as f32; | ||
| ^^^^^^^^^ | ||
|
||
error: casting isize to i32 may truncate the value on targets with 64-bit wide pointers | ||
--> $DIR/cast_size_32bit.rs:19:5 | ||
| | ||
LL | 1isize as i32; | ||
| ^^^^^^^^^^^^^ | ||
|
||
error: casting isize to u32 may truncate the value on targets with 64-bit wide pointers | ||
--> $DIR/cast_size_32bit.rs:20:5 | ||
| | ||
LL | 1isize as u32; | ||
| ^^^^^^^^^^^^^ | ||
|
||
error: casting usize to u32 may truncate the value on targets with 64-bit wide pointers | ||
--> $DIR/cast_size_32bit.rs:21:5 | ||
| | ||
LL | 1usize as u32; | ||
| ^^^^^^^^^^^^^ | ||
|
||
error: casting usize to i32 may truncate the value on targets with 64-bit wide pointers | ||
--> $DIR/cast_size_32bit.rs:22:5 | ||
| | ||
LL | 1usize as i32; | ||
| ^^^^^^^^^^^^^ | ||
|
||
error: casting usize to i32 may wrap around the value on targets with 32-bit wide pointers | ||
--> $DIR/cast_size_32bit.rs:22:5 | ||
| | ||
LL | 1usize as i32; | ||
| ^^^^^^^^^^^^^ | ||
| | ||
= note: `-D clippy::cast-possible-wrap` implied by `-D warnings` | ||
|
||
error: casting i64 to isize may truncate the value on targets with 32-bit wide pointers | ||
--> $DIR/cast_size_32bit.rs:24:5 | ||
| | ||
LL | 1i64 as isize; | ||
| ^^^^^^^^^^^^^ | ||
|
||
error: casting i64 to usize may truncate the value on targets with 32-bit wide pointers | ||
--> $DIR/cast_size_32bit.rs:25:5 | ||
| | ||
LL | 1i64 as usize; | ||
| ^^^^^^^^^^^^^ | ||
|
||
error: casting u64 to isize may truncate the value on targets with 32-bit wide pointers | ||
--> $DIR/cast_size_32bit.rs:26:5 | ||
| | ||
LL | 1u64 as isize; | ||
| ^^^^^^^^^^^^^ | ||
|
||
error: casting u64 to isize may wrap around the value on targets with 64-bit wide pointers | ||
--> $DIR/cast_size_32bit.rs:26:5 | ||
| | ||
LL | 1u64 as isize; | ||
| ^^^^^^^^^^^^^ | ||
|
||
error: casting u64 to usize may truncate the value on targets with 32-bit wide pointers | ||
--> $DIR/cast_size_32bit.rs:27:5 | ||
| | ||
LL | 1u64 as usize; | ||
| ^^^^^^^^^^^^^ | ||
|
||
error: casting u32 to isize may wrap around the value on targets with 32-bit wide pointers | ||
--> $DIR/cast_size_32bit.rs:28:5 | ||
| | ||
LL | 1u32 as isize; | ||
| ^^^^^^^^^^^^^ | ||
|
||
error: casting i32 to f32 causes a loss of precision (i32 is 32 bits wide, but f32's mantissa is only 23 bits wide) | ||
--> $DIR/cast_size_32bit.rs:33:5 | ||
| | ||
LL | 999_999_999 as f32; | ||
| ^^^^^^^^^^^^^^^^^^ | ||
|
||
error: casting integer literal to f64 is unnecessary | ||
--> $DIR/cast_size_32bit.rs:34:5 | ||
| | ||
LL | 3_999_999_999usize as f64; | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `3999999999_f64` | ||
| | ||
= note: `-D clippy::unnecessary-cast` implied by `-D warnings` | ||
|
||
error: aborting due to 20 previous errors | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// only-64bit | ||
// ignore-32bit | ||
|
||
#![warn(clippy::fn_to_numeric_cast, clippy::fn_to_numeric_cast_with_truncation)] | ||
|
||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.