diff options
| author | bors <bors@rust-lang.org> | 2021-08-07 23:24:15 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-08-07 23:24:15 +0000 |
| commit | 798446fe0612dd83a151e99c201b87dd649d4eb3 (patch) | |
| tree | 6e71618e2083ebcfaf354a90db0ba81873082df3 /src/test/ui/asm | |
| parent | 574d37568029f5c637557a87426ade54770d9a14 (diff) | |
| parent | 49685377805e9c87d00aa1d8b8cece3de2dc8319 (diff) | |
Auto merge of #87772 - npmccallum:naked_abi, r=Amanieu
Move naked function ABI check to its own lint This check was previously categorized under the lint named `UNSUPPORTED_NAKED_FUNCTIONS`. That lint is future incompatible and will be turned into an error in a future release. However, as defined in the Constrained Naked Functions RFC, this check should only be a warning. This is because it is possible for a naked function to be implemented in such a way that it does not break even the undefined ABI. For example, a `jmp` to a `const`. Therefore, this patch defines a new lint named `UNDEFINED_NAKED_FUNCTION_ABI` which contains just this single check. Unlike `UNSUPPORTED_NAKED_FUNCTIONS`, `UNDEFINED_NAKED_FUNCTION_ABI` will not be converted to an error in the future. rust-lang/rfcs#2774 rust-lang/rfcs#2972
Diffstat (limited to 'src/test/ui/asm')
| -rw-r--r-- | src/test/ui/asm/naked-functions.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/asm/naked-functions.stderr | 20 |
2 files changed, 8 insertions, 14 deletions
diff --git a/src/test/ui/asm/naked-functions.rs b/src/test/ui/asm/naked-functions.rs index 7075995c2cf..900f4443a1f 100644 --- a/src/test/ui/asm/naked-functions.rs +++ b/src/test/ui/asm/naked-functions.rs @@ -134,14 +134,12 @@ unsafe extern "C" fn invalid_options_continued() { #[naked] pub unsafe fn default_abi() { //~^ WARN Rust ABI is unsupported in naked functions - //~| WARN this was previously accepted asm!("", options(noreturn)); } #[naked] pub unsafe extern "Rust" fn rust_abi() { //~^ WARN Rust ABI is unsupported in naked functions - //~| WARN this was previously accepted asm!("", options(noreturn)); } diff --git a/src/test/ui/asm/naked-functions.stderr b/src/test/ui/asm/naked-functions.stderr index 2a186a69ff4..231a6239cbd 100644 --- a/src/test/ui/asm/naked-functions.stderr +++ b/src/test/ui/asm/naked-functions.stderr @@ -284,20 +284,16 @@ warning: Rust ABI is unsupported in naked functions LL | pub unsafe fn default_abi() { | ^^^^^^^^^^^ | - = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! - = note: for more information, see issue #32408 <https://github.com/rust-lang/rust/issues/32408> + = note: `#[warn(undefined_naked_function_abi)]` on by default warning: Rust ABI is unsupported in naked functions - --> $DIR/naked-functions.rs:142:29 + --> $DIR/naked-functions.rs:141:29 | LL | pub unsafe extern "Rust" fn rust_abi() { | ^^^^^^^^ - | - = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! - = note: for more information, see issue #32408 <https://github.com/rust-lang/rust/issues/32408> warning: naked functions cannot be inlined - --> $DIR/naked-functions.rs:177:1 + --> $DIR/naked-functions.rs:175:1 | LL | #[inline] | ^^^^^^^^^ @@ -306,7 +302,7 @@ LL | #[inline] = note: for more information, see issue #32408 <https://github.com/rust-lang/rust/issues/32408> warning: naked functions cannot be inlined - --> $DIR/naked-functions.rs:185:1 + --> $DIR/naked-functions.rs:183:1 | LL | #[inline(always)] | ^^^^^^^^^^^^^^^^^ @@ -315,7 +311,7 @@ LL | #[inline(always)] = note: for more information, see issue #32408 <https://github.com/rust-lang/rust/issues/32408> warning: naked functions cannot be inlined - --> $DIR/naked-functions.rs:193:1 + --> $DIR/naked-functions.rs:191:1 | LL | #[inline(never)] | ^^^^^^^^^^^^^^^^ @@ -324,7 +320,7 @@ LL | #[inline(never)] = note: for more information, see issue #32408 <https://github.com/rust-lang/rust/issues/32408> warning: naked functions cannot be inlined - --> $DIR/naked-functions.rs:201:1 + --> $DIR/naked-functions.rs:199:1 | LL | #[inline] | ^^^^^^^^^ @@ -333,7 +329,7 @@ LL | #[inline] = note: for more information, see issue #32408 <https://github.com/rust-lang/rust/issues/32408> warning: naked functions cannot be inlined - --> $DIR/naked-functions.rs:204:1 + --> $DIR/naked-functions.rs:202:1 | LL | #[inline(always)] | ^^^^^^^^^^^^^^^^^ @@ -342,7 +338,7 @@ LL | #[inline(always)] = note: for more information, see issue #32408 <https://github.com/rust-lang/rust/issues/32408> warning: naked functions cannot be inlined - --> $DIR/naked-functions.rs:207:1 + --> $DIR/naked-functions.rs:205:1 | LL | #[inline(never)] | ^^^^^^^^^^^^^^^^ |
