forked from rust-lang/rust
-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactor liveness-issue-77915 to liveness-asm and improve tests
- Loading branch information
1 parent
17c6c59
commit 8f0bced
Showing
3 changed files
with
66 additions
and
36 deletions.
There are no files selected for viewing
This file contains 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,43 @@ | ||
// Ensure inout asm! operands are marked as used by the liveness pass | ||
|
||
// check-pass | ||
|
||
#![feature(asm)] | ||
#![allow(dead_code)] | ||
#![warn(unused_assignments)] | ||
#![warn(unused_variables)] | ||
|
||
// Test the single inout case | ||
unsafe fn f1(mut src: *const u8) { | ||
asm!("/*{0}*/", inout(reg) src); //~ WARN value assigned to `src` is never read | ||
} | ||
|
||
unsafe fn f2(mut src: *const u8) -> *const u8 { | ||
asm!("/*{0}*/", inout(reg) src); | ||
src | ||
} | ||
|
||
// Test the split inout case | ||
unsafe fn f3(mut src: *const u8) { | ||
asm!("/*{0}*/", inout(reg) src => src); //~ WARN value assigned to `src` is never read | ||
} | ||
|
||
unsafe fn f4(mut src: *const u8) -> *const u8 { | ||
asm!("/*{0}*/", inout(reg) src => src); | ||
src | ||
} | ||
|
||
// Tests the use of field projections | ||
struct S { | ||
field: *mut u8, | ||
} | ||
|
||
unsafe fn f5(src: &mut S) { | ||
asm!("/*{0}*/", inout(reg) src.field); | ||
} | ||
|
||
unsafe fn f6(src: &mut S) { | ||
asm!("/*{0}*/", inout(reg) src.field => src.field); | ||
} | ||
|
||
fn main() {} |
This file contains 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,23 @@ | ||
warning: value assigned to `src` is never read | ||
--> $DIR/liveness-asm.rs:12:32 | ||
| | ||
LL | asm!("/*{0}*/", inout(reg) src); | ||
| ^^^ | ||
| | ||
note: the lint level is defined here | ||
--> $DIR/liveness-asm.rs:7:9 | ||
| | ||
LL | #![warn(unused_assignments)] | ||
| ^^^^^^^^^^^^^^^^^^ | ||
= help: maybe it is overwritten before being read? | ||
|
||
warning: value assigned to `src` is never read | ||
--> $DIR/liveness-asm.rs:22:39 | ||
| | ||
LL | asm!("/*{0}*/", inout(reg) src => src); | ||
| ^^^ | ||
| | ||
= help: maybe it is overwritten before being read? | ||
|
||
warning: 2 warnings emitted | ||
|
This file was deleted.
Oops, something went wrong.