stabilize naked_functions
This commit is contained in:
parent
49e5e4e3a5
commit
df8a3d5f1d
53 changed files with 165 additions and 294 deletions
|
@ -1,13 +1,4 @@
|
|||
#![feature(
|
||||
no_core,
|
||||
lang_items,
|
||||
never_type,
|
||||
linkage,
|
||||
extern_types,
|
||||
naked_functions,
|
||||
thread_local,
|
||||
repr_simd
|
||||
)]
|
||||
#![feature(no_core, lang_items, never_type, linkage, extern_types, thread_local, repr_simd)]
|
||||
#![no_core]
|
||||
#![allow(dead_code, non_camel_case_types, internal_features)]
|
||||
|
||||
|
|
|
@ -3,8 +3,6 @@ An unsupported naked function definition.
|
|||
Erroneous code example:
|
||||
|
||||
```compile_fail,E0787
|
||||
#![feature(naked_functions)]
|
||||
|
||||
#[unsafe(naked)]
|
||||
pub extern "C" fn f() -> u32 {
|
||||
42
|
||||
|
|
|
@ -300,6 +300,8 @@ declare_features! (
|
|||
/// Allows patterns with concurrent by-move and by-ref bindings.
|
||||
/// For example, you can write `Foo(a, ref b)` where `a` is by-move and `b` is by-ref.
|
||||
(accepted, move_ref_pattern, "1.49.0", Some(68354)),
|
||||
/// Allows using `#[naked]` on functions.
|
||||
(accepted, naked_functions, "CURRENT_RUSTC_VERSION", Some(90957)),
|
||||
/// Allows specifying modifiers in the link attribute: `#[link(modifiers = "...")]`
|
||||
(accepted, native_link_modifiers, "1.61.0", Some(81490)),
|
||||
/// Allows specifying the bundle link modifier
|
||||
|
|
|
@ -443,6 +443,7 @@ pub static BUILTIN_ATTRIBUTES: &[BuiltinAttribute] = &[
|
|||
ungated!(unsafe(Edition2024) no_mangle, Normal, template!(Word), WarnFollowing, EncodeCrossCrate::No),
|
||||
ungated!(used, Normal, template!(Word, List: "compiler|linker"), WarnFollowing, EncodeCrossCrate::No),
|
||||
ungated!(link_ordinal, Normal, template!(List: "ordinal"), ErrorPreceding, EncodeCrossCrate::Yes),
|
||||
ungated!(unsafe naked, Normal, template!(Word), WarnFollowing, EncodeCrossCrate::No),
|
||||
|
||||
// Limits:
|
||||
ungated!(
|
||||
|
@ -515,12 +516,6 @@ pub static BUILTIN_ATTRIBUTES: &[BuiltinAttribute] = &[
|
|||
// Unstable attributes:
|
||||
// ==========================================================================
|
||||
|
||||
// Linking:
|
||||
gated!(
|
||||
unsafe naked, Normal, template!(Word), WarnFollowing, EncodeCrossCrate::No,
|
||||
naked_functions, experimental!(naked)
|
||||
),
|
||||
|
||||
// Testing:
|
||||
gated!(
|
||||
test_runner, CrateLevel, template!(List: "path"), ErrorFollowing,
|
||||
|
|
|
@ -563,8 +563,6 @@ declare_features! (
|
|||
(unstable, must_not_suspend, "1.57.0", Some(83310)),
|
||||
/// Allows `mut ref` and `mut ref mut` identifier patterns.
|
||||
(incomplete, mut_ref, "1.79.0", Some(123076)),
|
||||
/// Allows using `#[naked]` on functions.
|
||||
(unstable, naked_functions, "1.9.0", Some(90957)),
|
||||
/// Allows using `#[naked]` on `extern "Rust"` functions.
|
||||
(unstable, naked_functions_rustic_abi, "CURRENT_RUSTC_VERSION", Some(138997)),
|
||||
/// Allows using `#[target_feature(enable = "...")]` on `#[naked]` on functions.
|
||||
|
|
|
@ -690,13 +690,6 @@ impl<'tcx> CheckAttrVisitor<'tcx> {
|
|||
}
|
||||
}
|
||||
}
|
||||
// FIXME(#80564): We permit struct fields, match arms and macro defs to have an
|
||||
// `#[naked]` attribute with just a lint, because we previously
|
||||
// erroneously allowed it and some crates used it accidentally, to be compatible
|
||||
// with crates depending on them, we can't throw an error here.
|
||||
Target::Field | Target::Arm | Target::MacroDef => {
|
||||
self.inline_attr_str_error_with_macro_def(hir_id, attr, "naked")
|
||||
}
|
||||
_ => {
|
||||
self.dcx().emit_err(errors::AttrShouldBeAppliedToFn {
|
||||
attr_span: attr.span(),
|
||||
|
|
|
@ -32,7 +32,7 @@ pub macro asm("assembly template", $(operands,)* $(options($(option),*))?) {
|
|||
///
|
||||
/// [Rust By Example]: https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html
|
||||
/// [reference]: https://doc.rust-lang.org/nightly/reference/inline-assembly.html
|
||||
#[unstable(feature = "naked_functions", issue = "90957")]
|
||||
#[stable(feature = "naked_functions", since = "CURRENT_RUSTC_VERSION")]
|
||||
#[rustc_builtin_macro]
|
||||
pub macro naked_asm("assembly template", $(operands,)* $(options($(option),*))?) {
|
||||
/* compiler built-in */
|
||||
|
|
|
@ -245,8 +245,6 @@ See the [Clang ControlFlowIntegrity documentation][clang-cfi] for more details.
|
|||
## Example 1: Redirecting control flow using an indirect branch/call to an invalid destination
|
||||
|
||||
```rust,ignore (making doc tests pass cross-platform is hard)
|
||||
#![feature(naked_functions)]
|
||||
|
||||
use std::arch::naked_asm;
|
||||
use std::mem;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
//@ only-aarch64
|
||||
|
||||
#![crate_type = "lib"]
|
||||
#![feature(naked_functions)]
|
||||
|
||||
use std::arch::naked_asm;
|
||||
|
||||
// The problem at hand: Rust has adopted a fairly strict meaning for "naked functions",
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
//@[aix] needs-llvm-components: powerpc
|
||||
|
||||
#![crate_type = "lib"]
|
||||
#![feature(no_core, naked_functions, asm_experimental_arch, f128, linkage, fn_align)]
|
||||
#![feature(no_core, asm_experimental_arch, f128, linkage, fn_align)]
|
||||
#![no_core]
|
||||
|
||||
// tests that naked functions work for the `powerpc64-ibm-aix` target.
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
//@ [wasm32-wasip1] needs-llvm-components: webassembly
|
||||
|
||||
#![crate_type = "lib"]
|
||||
#![feature(no_core, naked_functions, asm_experimental_arch, f128, linkage, fn_align)]
|
||||
#![feature(no_core, asm_experimental_arch, f128, linkage, fn_align)]
|
||||
#![no_core]
|
||||
|
||||
extern crate minicore;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
//@ only-x86_64
|
||||
|
||||
#![crate_type = "lib"]
|
||||
#![feature(naked_functions)]
|
||||
|
||||
use std::arch::naked_asm;
|
||||
|
||||
// The problem at hand: Rust has adopted a fairly strict meaning for "naked functions",
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
negative_impls,
|
||||
rustc_attrs,
|
||||
decl_macro,
|
||||
naked_functions,
|
||||
f16,
|
||||
f128,
|
||||
asm_experimental_arch,
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
|
||||
#![crate_type = "lib"]
|
||||
#![feature(c_variadic)]
|
||||
#![feature(naked_functions)]
|
||||
#![no_std]
|
||||
|
||||
#[unsafe(naked)]
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#![crate_type = "lib"]
|
||||
#![no_std]
|
||||
#![feature(abi_x86_interrupt, naked_functions)]
|
||||
#![feature(abi_x86_interrupt)]
|
||||
|
||||
pub fn caller() {
|
||||
page_fault_handler(1, 2);
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
//@ ignore-arm no "ret" mnemonic
|
||||
|
||||
#![crate_type = "lib"]
|
||||
#![feature(naked_functions, fn_align)]
|
||||
#![feature(fn_align)]
|
||||
use std::arch::naked_asm;
|
||||
|
||||
// CHECK: .balign 16
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
//@ only-x86_64
|
||||
|
||||
#![crate_type = "lib"]
|
||||
#![feature(naked_functions, asm_const)]
|
||||
|
||||
use std::arch::naked_asm;
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
//@ [thumb-mode] needs-llvm-components: arm
|
||||
|
||||
#![crate_type = "lib"]
|
||||
#![feature(no_core, lang_items, rustc_attrs, naked_functions)]
|
||||
#![feature(no_core, lang_items, rustc_attrs)]
|
||||
#![no_core]
|
||||
|
||||
extern crate minicore;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
//@ needs-asm-support
|
||||
//@ ignore-arm no "ret" mnemonic
|
||||
|
||||
#![feature(naked_functions, fn_align)]
|
||||
#![feature(fn_align)]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
// functions without explicit alignment use the global minimum
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
//@[thumb] needs-llvm-components: arm
|
||||
|
||||
#![crate_type = "lib"]
|
||||
#![feature(no_core, lang_items, rustc_attrs, naked_functions)]
|
||||
#![feature(no_core, lang_items, rustc_attrs)]
|
||||
#![no_core]
|
||||
|
||||
extern crate minicore;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#![feature(naked_functions, linkage)]
|
||||
#![feature(linkage)]
|
||||
#![crate_type = "dylib"]
|
||||
|
||||
use std::arch::naked_asm;
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
//@ ignore-nvptx64
|
||||
//@ ignore-spirv
|
||||
|
||||
#![feature(naked_functions)]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
use std::arch::naked_asm;
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
error: the `naked_asm!` macro can only be used in functions marked with `#[unsafe(naked)]`
|
||||
--> $DIR/naked-asm-outside-naked-fn.rs:21:5
|
||||
--> $DIR/naked-asm-outside-naked-fn.rs:20:5
|
||||
|
|
||||
LL | naked_asm!("")
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
||||
error: the `naked_asm!` macro can only be used in functions marked with `#[unsafe(naked)]`
|
||||
--> $DIR/naked-asm-outside-naked-fn.rs:26:9
|
||||
--> $DIR/naked-asm-outside-naked-fn.rs:25:9
|
||||
|
|
||||
LL | (|| naked_asm!(""))()
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
||||
error: the `naked_asm!` macro can only be used in functions marked with `#[unsafe(naked)]`
|
||||
--> $DIR/naked-asm-outside-naked-fn.rs:32:9
|
||||
--> $DIR/naked-asm-outside-naked-fn.rs:31:9
|
||||
|
|
||||
LL | naked_asm!("");
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
//@ check-pass
|
||||
//@ needs-asm-support
|
||||
#![feature(naked_functions)]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
use std::arch::naked_asm;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
warning: `extern` fn uses type `char`, which is not FFI-safe
|
||||
--> $DIR/naked-functions-ffi.rs:9:28
|
||||
--> $DIR/naked-functions-ffi.rs:8:28
|
||||
|
|
||||
LL | pub extern "C" fn naked(p: char) -> u128 {
|
||||
| ^^^^ not FFI-safe
|
||||
|
@ -9,7 +9,7 @@ LL | pub extern "C" fn naked(p: char) -> u128 {
|
|||
= note: `#[warn(improper_ctypes_definitions)]` on by default
|
||||
|
||||
warning: `extern` fn uses type `u128`, which is not FFI-safe
|
||||
--> $DIR/naked-functions-ffi.rs:9:37
|
||||
--> $DIR/naked-functions-ffi.rs:8:37
|
||||
|
|
||||
LL | pub extern "C" fn naked(p: char) -> u128 {
|
||||
| ^^^^ not FFI-safe
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
//@ needs-asm-support
|
||||
#![feature(naked_functions)]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
use std::arch::naked_asm;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
error[E0736]: attribute incompatible with `#[unsafe(naked)]`
|
||||
--> $DIR/naked-functions-inline.rs:13:1
|
||||
--> $DIR/naked-functions-inline.rs:12:1
|
||||
|
|
||||
LL | #[unsafe(naked)]
|
||||
| ---------------- function marked with `#[unsafe(naked)]` here
|
||||
|
@ -7,7 +7,7 @@ LL | #[inline]
|
|||
| ^^^^^^^^^ the `inline` attribute is incompatible with `#[unsafe(naked)]`
|
||||
|
||||
error[E0736]: attribute incompatible with `#[unsafe(naked)]`
|
||||
--> $DIR/naked-functions-inline.rs:20:1
|
||||
--> $DIR/naked-functions-inline.rs:19:1
|
||||
|
|
||||
LL | #[unsafe(naked)]
|
||||
| ---------------- function marked with `#[unsafe(naked)]` here
|
||||
|
@ -15,7 +15,7 @@ LL | #[inline(always)]
|
|||
| ^^^^^^^^^^^^^^^^^ the `inline` attribute is incompatible with `#[unsafe(naked)]`
|
||||
|
||||
error[E0736]: attribute incompatible with `#[unsafe(naked)]`
|
||||
--> $DIR/naked-functions-inline.rs:27:1
|
||||
--> $DIR/naked-functions-inline.rs:26:1
|
||||
|
|
||||
LL | #[unsafe(naked)]
|
||||
| ---------------- function marked with `#[unsafe(naked)]` here
|
||||
|
@ -23,7 +23,7 @@ LL | #[inline(never)]
|
|||
| ^^^^^^^^^^^^^^^^ the `inline` attribute is incompatible with `#[unsafe(naked)]`
|
||||
|
||||
error[E0736]: attribute incompatible with `#[unsafe(naked)]`
|
||||
--> $DIR/naked-functions-inline.rs:34:19
|
||||
--> $DIR/naked-functions-inline.rs:33:19
|
||||
|
|
||||
LL | #[unsafe(naked)]
|
||||
| ---------------- function marked with `#[unsafe(naked)]` here
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
//@ build-pass
|
||||
|
||||
#![crate_type = "lib"]
|
||||
#![feature(no_core, naked_functions)]
|
||||
#![feature(no_core)]
|
||||
#![no_core]
|
||||
|
||||
extern crate minicore;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
//@ build-pass
|
||||
//@ needs-asm-support
|
||||
|
||||
#![feature(naked_functions, naked_functions_rustic_abi, rust_cold_cc)]
|
||||
#![feature(naked_functions_rustic_abi, rust_cold_cc)]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
use std::arch::{asm, naked_asm};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
//@ build-pass
|
||||
//@ needs-asm-support
|
||||
|
||||
#![feature(naked_functions, naked_functions_target_feature)]
|
||||
#![feature(naked_functions_target_feature)]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
use std::arch::{asm, naked_asm};
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
//@ needs-asm-support
|
||||
//@ compile-flags: --test
|
||||
|
||||
#![feature(naked_functions)]
|
||||
#![feature(test)]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
error[E0736]: cannot use `#[unsafe(naked)]` with testing attributes
|
||||
--> $DIR/naked-functions-testattrs.rs:11:1
|
||||
--> $DIR/naked-functions-testattrs.rs:10:1
|
||||
|
|
||||
LL | #[test]
|
||||
| ------- function marked with testing attribute here
|
||||
|
@ -7,7 +7,7 @@ LL | #[unsafe(naked)]
|
|||
| ^^^^^^^^^^^^^^^^ `#[unsafe(naked)]` is incompatible with testing attributes
|
||||
|
||||
error[E0736]: cannot use `#[unsafe(naked)]` with testing attributes
|
||||
--> $DIR/naked-functions-testattrs.rs:19:1
|
||||
--> $DIR/naked-functions-testattrs.rs:18:1
|
||||
|
|
||||
LL | #[test]
|
||||
| ------- function marked with testing attribute here
|
||||
|
@ -15,7 +15,7 @@ LL | #[unsafe(naked)]
|
|||
| ^^^^^^^^^^^^^^^^ `#[unsafe(naked)]` is incompatible with testing attributes
|
||||
|
||||
error[E0736]: cannot use `#[unsafe(naked)]` with testing attributes
|
||||
--> $DIR/naked-functions-testattrs.rs:27:1
|
||||
--> $DIR/naked-functions-testattrs.rs:26:1
|
||||
|
|
||||
LL | #[test]
|
||||
| ------- function marked with testing attribute here
|
||||
|
@ -23,7 +23,7 @@ LL | #[unsafe(naked)]
|
|||
| ^^^^^^^^^^^^^^^^ `#[unsafe(naked)]` is incompatible with testing attributes
|
||||
|
||||
error[E0736]: cannot use `#[unsafe(naked)]` with testing attributes
|
||||
--> $DIR/naked-functions-testattrs.rs:34:1
|
||||
--> $DIR/naked-functions-testattrs.rs:33:1
|
||||
|
|
||||
LL | #[bench]
|
||||
| -------- function marked with testing attribute here
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
error: unused variable: `a`
|
||||
--> $DIR/naked-functions-unused.rs:17:32
|
||||
--> $DIR/naked-functions-unused.rs:16:32
|
||||
|
|
||||
LL | pub extern "C" fn function(a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_a`
|
||||
|
@ -12,55 +12,55 @@ LL | #![deny(unused)]
|
|||
= note: `#[deny(unused_variables)]` implied by `#[deny(unused)]`
|
||||
|
||||
error: unused variable: `b`
|
||||
--> $DIR/naked-functions-unused.rs:17:42
|
||||
--> $DIR/naked-functions-unused.rs:16:42
|
||||
|
|
||||
LL | pub extern "C" fn function(a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_b`
|
||||
|
||||
error: unused variable: `a`
|
||||
--> $DIR/naked-functions-unused.rs:28:38
|
||||
--> $DIR/naked-functions-unused.rs:27:38
|
||||
|
|
||||
LL | pub extern "C" fn associated(a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_a`
|
||||
|
||||
error: unused variable: `b`
|
||||
--> $DIR/naked-functions-unused.rs:28:48
|
||||
--> $DIR/naked-functions-unused.rs:27:48
|
||||
|
|
||||
LL | pub extern "C" fn associated(a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_b`
|
||||
|
||||
error: unused variable: `a`
|
||||
--> $DIR/naked-functions-unused.rs:36:41
|
||||
--> $DIR/naked-functions-unused.rs:35:41
|
||||
|
|
||||
LL | pub extern "C" fn method(&self, a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_a`
|
||||
|
||||
error: unused variable: `b`
|
||||
--> $DIR/naked-functions-unused.rs:36:51
|
||||
--> $DIR/naked-functions-unused.rs:35:51
|
||||
|
|
||||
LL | pub extern "C" fn method(&self, a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_b`
|
||||
|
||||
error: unused variable: `a`
|
||||
--> $DIR/naked-functions-unused.rs:46:40
|
||||
--> $DIR/naked-functions-unused.rs:45:40
|
||||
|
|
||||
LL | extern "C" fn trait_associated(a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_a`
|
||||
|
||||
error: unused variable: `b`
|
||||
--> $DIR/naked-functions-unused.rs:46:50
|
||||
--> $DIR/naked-functions-unused.rs:45:50
|
||||
|
|
||||
LL | extern "C" fn trait_associated(a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_b`
|
||||
|
||||
error: unused variable: `a`
|
||||
--> $DIR/naked-functions-unused.rs:54:43
|
||||
--> $DIR/naked-functions-unused.rs:53:43
|
||||
|
|
||||
LL | extern "C" fn trait_method(&self, a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_a`
|
||||
|
||||
error: unused variable: `b`
|
||||
--> $DIR/naked-functions-unused.rs:54:53
|
||||
--> $DIR/naked-functions-unused.rs:53:53
|
||||
|
|
||||
LL | extern "C" fn trait_method(&self, a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_b`
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
//@[x86_64] only-x86_64
|
||||
//@[aarch64] only-aarch64
|
||||
#![deny(unused)]
|
||||
#![feature(naked_functions)]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
pub trait Trait {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
error: unused variable: `a`
|
||||
--> $DIR/naked-functions-unused.rs:17:32
|
||||
--> $DIR/naked-functions-unused.rs:16:32
|
||||
|
|
||||
LL | pub extern "C" fn function(a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_a`
|
||||
|
@ -12,55 +12,55 @@ LL | #![deny(unused)]
|
|||
= note: `#[deny(unused_variables)]` implied by `#[deny(unused)]`
|
||||
|
||||
error: unused variable: `b`
|
||||
--> $DIR/naked-functions-unused.rs:17:42
|
||||
--> $DIR/naked-functions-unused.rs:16:42
|
||||
|
|
||||
LL | pub extern "C" fn function(a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_b`
|
||||
|
||||
error: unused variable: `a`
|
||||
--> $DIR/naked-functions-unused.rs:28:38
|
||||
--> $DIR/naked-functions-unused.rs:27:38
|
||||
|
|
||||
LL | pub extern "C" fn associated(a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_a`
|
||||
|
||||
error: unused variable: `b`
|
||||
--> $DIR/naked-functions-unused.rs:28:48
|
||||
--> $DIR/naked-functions-unused.rs:27:48
|
||||
|
|
||||
LL | pub extern "C" fn associated(a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_b`
|
||||
|
||||
error: unused variable: `a`
|
||||
--> $DIR/naked-functions-unused.rs:36:41
|
||||
--> $DIR/naked-functions-unused.rs:35:41
|
||||
|
|
||||
LL | pub extern "C" fn method(&self, a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_a`
|
||||
|
||||
error: unused variable: `b`
|
||||
--> $DIR/naked-functions-unused.rs:36:51
|
||||
--> $DIR/naked-functions-unused.rs:35:51
|
||||
|
|
||||
LL | pub extern "C" fn method(&self, a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_b`
|
||||
|
||||
error: unused variable: `a`
|
||||
--> $DIR/naked-functions-unused.rs:46:40
|
||||
--> $DIR/naked-functions-unused.rs:45:40
|
||||
|
|
||||
LL | extern "C" fn trait_associated(a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_a`
|
||||
|
||||
error: unused variable: `b`
|
||||
--> $DIR/naked-functions-unused.rs:46:50
|
||||
--> $DIR/naked-functions-unused.rs:45:50
|
||||
|
|
||||
LL | extern "C" fn trait_associated(a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_b`
|
||||
|
||||
error: unused variable: `a`
|
||||
--> $DIR/naked-functions-unused.rs:54:43
|
||||
--> $DIR/naked-functions-unused.rs:53:43
|
||||
|
|
||||
LL | extern "C" fn trait_method(&self, a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_a`
|
||||
|
||||
error: unused variable: `b`
|
||||
--> $DIR/naked-functions-unused.rs:54:53
|
||||
--> $DIR/naked-functions-unused.rs:53:53
|
||||
|
|
||||
LL | extern "C" fn trait_method(&self, a: usize, b: usize) -> usize {
|
||||
| ^ help: if this is intentional, prefix it with an underscore: `_b`
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
//@ ignore-nvptx64
|
||||
//@ ignore-spirv
|
||||
|
||||
#![feature(naked_functions)]
|
||||
#![feature(asm_unwind, linkage)]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
|
|
|
@ -1,107 +1,107 @@
|
|||
error: the `in` operand cannot be used with `naked_asm!`
|
||||
--> $DIR/naked-functions.rs:47:29
|
||||
--> $DIR/naked-functions.rs:46:29
|
||||
|
|
||||
LL | naked_asm!("/* {0} */", in(reg) a)
|
||||
| ^^ the `in` operand is not meaningful for global-scoped inline assembly, remove it
|
||||
|
||||
error: the `in` operand cannot be used with `naked_asm!`
|
||||
--> $DIR/naked-functions.rs:68:10
|
||||
--> $DIR/naked-functions.rs:67:10
|
||||
|
|
||||
LL | in(reg) a,
|
||||
| ^^ the `in` operand is not meaningful for global-scoped inline assembly, remove it
|
||||
|
||||
error: the `noreturn` option cannot be used with `naked_asm!`
|
||||
--> $DIR/naked-functions.rs:88:28
|
||||
--> $DIR/naked-functions.rs:87:28
|
||||
|
|
||||
LL | naked_asm!("", options(noreturn));
|
||||
| ^^^^^^^^ the `noreturn` option is not meaningful for global-scoped inline assembly
|
||||
|
||||
error: the `nomem` option cannot be used with `naked_asm!`
|
||||
--> $DIR/naked-functions.rs:105:28
|
||||
--> $DIR/naked-functions.rs:104:28
|
||||
|
|
||||
LL | naked_asm!("", options(nomem, preserves_flags));
|
||||
| ^^^^^ the `nomem` option is not meaningful for global-scoped inline assembly
|
||||
|
||||
error: the `preserves_flags` option cannot be used with `naked_asm!`
|
||||
--> $DIR/naked-functions.rs:105:35
|
||||
--> $DIR/naked-functions.rs:104:35
|
||||
|
|
||||
LL | naked_asm!("", options(nomem, preserves_flags));
|
||||
| ^^^^^^^^^^^^^^^ the `preserves_flags` option is not meaningful for global-scoped inline assembly
|
||||
|
||||
error: the `readonly` option cannot be used with `naked_asm!`
|
||||
--> $DIR/naked-functions.rs:112:28
|
||||
--> $DIR/naked-functions.rs:111:28
|
||||
|
|
||||
LL | naked_asm!("", options(readonly, nostack), options(pure));
|
||||
| ^^^^^^^^ the `readonly` option is not meaningful for global-scoped inline assembly
|
||||
|
||||
error: the `nostack` option cannot be used with `naked_asm!`
|
||||
--> $DIR/naked-functions.rs:112:38
|
||||
--> $DIR/naked-functions.rs:111:38
|
||||
|
|
||||
LL | naked_asm!("", options(readonly, nostack), options(pure));
|
||||
| ^^^^^^^ the `nostack` option is not meaningful for global-scoped inline assembly
|
||||
|
||||
error: the `pure` option cannot be used with `naked_asm!`
|
||||
--> $DIR/naked-functions.rs:112:56
|
||||
--> $DIR/naked-functions.rs:111:56
|
||||
|
|
||||
LL | naked_asm!("", options(readonly, nostack), options(pure));
|
||||
| ^^^^ the `pure` option is not meaningful for global-scoped inline assembly
|
||||
|
||||
error: the `may_unwind` option cannot be used with `naked_asm!`
|
||||
--> $DIR/naked-functions.rs:120:28
|
||||
--> $DIR/naked-functions.rs:119:28
|
||||
|
|
||||
LL | naked_asm!("", options(may_unwind));
|
||||
| ^^^^^^^^^^ the `may_unwind` option is not meaningful for global-scoped inline assembly
|
||||
|
||||
error: this is a user specified error
|
||||
--> $DIR/naked-functions.rs:151:5
|
||||
--> $DIR/naked-functions.rs:150:5
|
||||
|
|
||||
LL | compile_error!("this is a user specified error")
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: this is a user specified error
|
||||
--> $DIR/naked-functions.rs:157:5
|
||||
--> $DIR/naked-functions.rs:156:5
|
||||
|
|
||||
LL | compile_error!("this is a user specified error");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: asm template must be a string literal
|
||||
--> $DIR/naked-functions.rs:164:16
|
||||
--> $DIR/naked-functions.rs:163:16
|
||||
|
|
||||
LL | naked_asm!(invalid_syntax)
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
||||
error[E0787]: the `asm!` macro is not allowed in naked functions
|
||||
--> $DIR/naked-functions.rs:13:14
|
||||
--> $DIR/naked-functions.rs:12:14
|
||||
|
|
||||
LL | unsafe { asm!("", options(raw)) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ consider using the `naked_asm!` macro instead
|
||||
|
||||
error: patterns not allowed in naked function parameters
|
||||
--> $DIR/naked-functions.rs:25:5
|
||||
--> $DIR/naked-functions.rs:24:5
|
||||
|
|
||||
LL | mut a: u32,
|
||||
| ^^^^^
|
||||
|
||||
error: patterns not allowed in naked function parameters
|
||||
--> $DIR/naked-functions.rs:27:5
|
||||
--> $DIR/naked-functions.rs:26:5
|
||||
|
|
||||
LL | &b: &i32,
|
||||
| ^^
|
||||
|
||||
error: patterns not allowed in naked function parameters
|
||||
--> $DIR/naked-functions.rs:29:6
|
||||
--> $DIR/naked-functions.rs:28:6
|
||||
|
|
||||
LL | (None | Some(_)): Option<std::ptr::NonNull<u8>>,
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
||||
error: patterns not allowed in naked function parameters
|
||||
--> $DIR/naked-functions.rs:31:5
|
||||
--> $DIR/naked-functions.rs:30:5
|
||||
|
|
||||
LL | P { x, y }: P,
|
||||
| ^^^^^^^^^^
|
||||
|
||||
error: referencing function parameters is not allowed in naked functions
|
||||
--> $DIR/naked-functions.rs:40:5
|
||||
--> $DIR/naked-functions.rs:39:5
|
||||
|
|
||||
LL | a + 1
|
||||
| ^
|
||||
|
@ -109,7 +109,7 @@ LL | a + 1
|
|||
= help: follow the calling convention in asm block to use parameters
|
||||
|
||||
error[E0787]: naked functions must contain a single `naked_asm!` invocation
|
||||
--> $DIR/naked-functions.rs:38:1
|
||||
--> $DIR/naked-functions.rs:37:1
|
||||
|
|
||||
LL | pub extern "C" fn inc(a: u32) -> u32 {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -118,7 +118,7 @@ LL | a + 1
|
|||
| ----- not allowed in naked functions
|
||||
|
||||
error[E0787]: naked functions must contain a single `naked_asm!` invocation
|
||||
--> $DIR/naked-functions.rs:52:1
|
||||
--> $DIR/naked-functions.rs:51:1
|
||||
|
|
||||
LL | pub extern "C" fn inc_closure(a: u32) -> u32 {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -127,7 +127,7 @@ LL | (|| a + 1)()
|
|||
| ------------ not allowed in naked functions
|
||||
|
||||
error[E0787]: naked functions must contain a single `naked_asm!` invocation
|
||||
--> $DIR/naked-functions.rs:58:1
|
||||
--> $DIR/naked-functions.rs:57:1
|
||||
|
|
||||
LL | pub extern "C" fn unsupported_operands() {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -144,13 +144,13 @@ LL | let mut e = 0usize;
|
|||
| ------------------- not allowed in naked functions
|
||||
|
||||
error[E0787]: naked functions must contain a single `naked_asm!` invocation
|
||||
--> $DIR/naked-functions.rs:80:1
|
||||
--> $DIR/naked-functions.rs:79:1
|
||||
|
|
||||
LL | pub extern "C" fn missing_assembly() {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0787]: naked functions must contain a single `naked_asm!` invocation
|
||||
--> $DIR/naked-functions.rs:85:1
|
||||
--> $DIR/naked-functions.rs:84:1
|
||||
|
|
||||
LL | pub extern "C" fn too_many_asm_blocks() {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -159,7 +159,7 @@ LL | naked_asm!("");
|
|||
| -------------- multiple `naked_asm!` invocations are not allowed in naked functions
|
||||
|
||||
error: referencing function parameters is not allowed in naked functions
|
||||
--> $DIR/naked-functions.rs:97:11
|
||||
--> $DIR/naked-functions.rs:96:11
|
||||
|
|
||||
LL | *&y
|
||||
| ^
|
||||
|
@ -167,7 +167,7 @@ LL | *&y
|
|||
= help: follow the calling convention in asm block to use parameters
|
||||
|
||||
error[E0787]: naked functions must contain a single `naked_asm!` invocation
|
||||
--> $DIR/naked-functions.rs:95:5
|
||||
--> $DIR/naked-functions.rs:94:5
|
||||
|
|
||||
LL | pub extern "C" fn inner(y: usize) -> usize {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// Checks that #[unsafe(naked)] attribute can be placed on function definitions only.
|
||||
// Checks that the #[unsafe(naked)] attribute can be placed on function definitions only.
|
||||
//
|
||||
//@ needs-asm-support
|
||||
#![feature(naked_functions)]
|
||||
#![unsafe(naked)] //~ ERROR should be applied to a function definition
|
||||
|
||||
use std::arch::naked_asm;
|
||||
|
@ -14,6 +13,7 @@ extern "C" {
|
|||
#[unsafe(naked)] //~ ERROR should be applied to a function definition
|
||||
#[repr(C)]
|
||||
struct S {
|
||||
#[unsafe(naked)] //~ ERROR should be applied to a function definition
|
||||
a: u32,
|
||||
b: u32,
|
||||
}
|
||||
|
|
|
@ -1,15 +1,24 @@
|
|||
error: attribute should be applied to a function definition
|
||||
--> $DIR/naked-invalid-attr.rs:14:1
|
||||
--> $DIR/naked-invalid-attr.rs:13:1
|
||||
|
|
||||
LL | #[unsafe(naked)]
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
LL | #[repr(C)]
|
||||
LL | / struct S {
|
||||
LL | | #[unsafe(naked)]
|
||||
LL | | a: u32,
|
||||
LL | | b: u32,
|
||||
LL | | }
|
||||
| |_- not a function definition
|
||||
|
||||
error: attribute should be applied to a function definition
|
||||
--> $DIR/naked-invalid-attr.rs:16:5
|
||||
|
|
||||
LL | #[unsafe(naked)]
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
LL | a: u32,
|
||||
| ------ not a function definition
|
||||
|
||||
error: attribute should be applied to a function definition
|
||||
--> $DIR/naked-invalid-attr.rs:51:5
|
||||
|
|
||||
|
@ -27,7 +36,7 @@ LL | extern "C" fn invoke(&self);
|
|||
| ---------------------------- not a function definition
|
||||
|
||||
error: attribute should be applied to a function definition
|
||||
--> $DIR/naked-invalid-attr.rs:10:5
|
||||
--> $DIR/naked-invalid-attr.rs:9:5
|
||||
|
|
||||
LL | #[unsafe(naked)]
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
@ -35,10 +44,10 @@ LL | fn f();
|
|||
| ------- not a function definition
|
||||
|
||||
error: attribute should be applied to a function definition
|
||||
--> $DIR/naked-invalid-attr.rs:5:1
|
||||
--> $DIR/naked-invalid-attr.rs:4:1
|
||||
|
|
||||
LL | #![unsafe(naked)]
|
||||
| ^^^^^^^^^^^^^^^^^ cannot be applied to crates
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
error: aborting due to 6 previous errors
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
//@ needs-asm-support
|
||||
#![feature(naked_functions)]
|
||||
#![feature(fn_align)]
|
||||
#![crate_type = "lib"]
|
||||
use std::arch::naked_asm;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
error[E0517]: attribute should be applied to a struct, enum, or union
|
||||
--> $DIR/naked-with-invalid-repr-attr.rs:7:8
|
||||
--> $DIR/naked-with-invalid-repr-attr.rs:6:8
|
||||
|
|
||||
LL | #[repr(C)]
|
||||
| ^
|
||||
|
@ -11,7 +11,7 @@ LL | | }
|
|||
| |_- not a struct, enum, or union
|
||||
|
||||
error[E0517]: attribute should be applied to a struct, enum, or union
|
||||
--> $DIR/naked-with-invalid-repr-attr.rs:15:8
|
||||
--> $DIR/naked-with-invalid-repr-attr.rs:14:8
|
||||
|
|
||||
LL | #[repr(transparent)]
|
||||
| ^^^^^^^^^^^
|
||||
|
@ -23,7 +23,7 @@ LL | | }
|
|||
| |_- not a struct, enum, or union
|
||||
|
||||
error[E0517]: attribute should be applied to a struct, enum, or union
|
||||
--> $DIR/naked-with-invalid-repr-attr.rs:23:19
|
||||
--> $DIR/naked-with-invalid-repr-attr.rs:22:19
|
||||
|
|
||||
LL | #[repr(align(16), C)]
|
||||
| ^
|
||||
|
@ -35,7 +35,7 @@ LL | | }
|
|||
| |_- not a struct, enum, or union
|
||||
|
||||
error[E0517]: attribute should be applied to a struct, enum, or union
|
||||
--> $DIR/naked-with-invalid-repr-attr.rs:32:8
|
||||
--> $DIR/naked-with-invalid-repr-attr.rs:31:8
|
||||
|
|
||||
LL | #[repr(C, packed)]
|
||||
| ^
|
||||
|
@ -48,7 +48,7 @@ LL | | }
|
|||
| |_- not a struct, enum, or union
|
||||
|
||||
error[E0517]: attribute should be applied to a struct or union
|
||||
--> $DIR/naked-with-invalid-repr-attr.rs:32:11
|
||||
--> $DIR/naked-with-invalid-repr-attr.rs:31:11
|
||||
|
|
||||
LL | #[repr(C, packed)]
|
||||
| ^^^^^^
|
||||
|
@ -61,7 +61,7 @@ LL | | }
|
|||
| |_- not a struct or union
|
||||
|
||||
error[E0517]: attribute should be applied to an enum
|
||||
--> $DIR/naked-with-invalid-repr-attr.rs:42:8
|
||||
--> $DIR/naked-with-invalid-repr-attr.rs:41:8
|
||||
|
|
||||
LL | #[repr(u8)]
|
||||
| ^^
|
||||
|
|
|
@ -10,8 +10,6 @@
|
|||
// which causes less readable LLVM errors and in the worst cases causes ICEs
|
||||
// or segfaults based on system dependent behavior and codegen flags.
|
||||
|
||||
#![feature(naked_functions)]
|
||||
|
||||
use std::arch::{asm, global_asm, naked_asm};
|
||||
|
||||
#[no_mangle]
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:23:15
|
||||
--> $DIR/named-asm-labels.rs:21:15
|
||||
|
|
||||
LL | asm!("bar: nop");
|
||||
| ^^^
|
||||
|
@ -9,7 +9,7 @@ LL | asm!("bar: nop");
|
|||
= note: `#[deny(named_asm_labels)]` on by default
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:26:15
|
||||
--> $DIR/named-asm-labels.rs:24:15
|
||||
|
|
||||
LL | asm!("abcd:");
|
||||
| ^^^^
|
||||
|
@ -18,7 +18,7 @@ LL | asm!("abcd:");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:29:15
|
||||
--> $DIR/named-asm-labels.rs:27:15
|
||||
|
|
||||
LL | asm!("foo: bar1: nop");
|
||||
| ^^^
|
||||
|
@ -27,7 +27,7 @@ LL | asm!("foo: bar1: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:29:20
|
||||
--> $DIR/named-asm-labels.rs:27:20
|
||||
|
|
||||
LL | asm!("foo: bar1: nop");
|
||||
| ^^^^
|
||||
|
@ -36,7 +36,7 @@ LL | asm!("foo: bar1: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:34:15
|
||||
--> $DIR/named-asm-labels.rs:32:15
|
||||
|
|
||||
LL | asm!("foo1: nop", "nop");
|
||||
| ^^^^
|
||||
|
@ -45,7 +45,7 @@ LL | asm!("foo1: nop", "nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:35:15
|
||||
--> $DIR/named-asm-labels.rs:33:15
|
||||
|
|
||||
LL | asm!("foo2: foo3: nop", "nop");
|
||||
| ^^^^
|
||||
|
@ -54,7 +54,7 @@ LL | asm!("foo2: foo3: nop", "nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:35:21
|
||||
--> $DIR/named-asm-labels.rs:33:21
|
||||
|
|
||||
LL | asm!("foo2: foo3: nop", "nop");
|
||||
| ^^^^
|
||||
|
@ -63,7 +63,7 @@ LL | asm!("foo2: foo3: nop", "nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:38:22
|
||||
--> $DIR/named-asm-labels.rs:36:22
|
||||
|
|
||||
LL | asm!("nop", "foo4: nop");
|
||||
| ^^^^
|
||||
|
@ -72,7 +72,7 @@ LL | asm!("nop", "foo4: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:39:15
|
||||
--> $DIR/named-asm-labels.rs:37:15
|
||||
|
|
||||
LL | asm!("foo5: nop", "foo6: nop");
|
||||
| ^^^^
|
||||
|
@ -81,7 +81,7 @@ LL | asm!("foo5: nop", "foo6: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:39:28
|
||||
--> $DIR/named-asm-labels.rs:37:28
|
||||
|
|
||||
LL | asm!("foo5: nop", "foo6: nop");
|
||||
| ^^^^
|
||||
|
@ -90,7 +90,7 @@ LL | asm!("foo5: nop", "foo6: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:44:15
|
||||
--> $DIR/named-asm-labels.rs:42:15
|
||||
|
|
||||
LL | asm!("foo7: nop; foo8: nop");
|
||||
| ^^^^
|
||||
|
@ -99,7 +99,7 @@ LL | asm!("foo7: nop; foo8: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:44:26
|
||||
--> $DIR/named-asm-labels.rs:42:26
|
||||
|
|
||||
LL | asm!("foo7: nop; foo8: nop");
|
||||
| ^^^^
|
||||
|
@ -108,7 +108,7 @@ LL | asm!("foo7: nop; foo8: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:47:15
|
||||
--> $DIR/named-asm-labels.rs:45:15
|
||||
|
|
||||
LL | asm!("foo9: nop; nop");
|
||||
| ^^^^
|
||||
|
@ -117,7 +117,7 @@ LL | asm!("foo9: nop; nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:48:20
|
||||
--> $DIR/named-asm-labels.rs:46:20
|
||||
|
|
||||
LL | asm!("nop; foo10: nop");
|
||||
| ^^^^^
|
||||
|
@ -126,7 +126,7 @@ LL | asm!("nop; foo10: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:51:15
|
||||
--> $DIR/named-asm-labels.rs:49:15
|
||||
|
|
||||
LL | asm!("bar2: nop\n bar3: nop");
|
||||
| ^^^^
|
||||
|
@ -135,7 +135,7 @@ LL | asm!("bar2: nop\n bar3: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:51:27
|
||||
--> $DIR/named-asm-labels.rs:49:27
|
||||
|
|
||||
LL | asm!("bar2: nop\n bar3: nop");
|
||||
| ^^^^
|
||||
|
@ -144,7 +144,7 @@ LL | asm!("bar2: nop\n bar3: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:54:15
|
||||
--> $DIR/named-asm-labels.rs:52:15
|
||||
|
|
||||
LL | asm!("bar4: nop\n nop");
|
||||
| ^^^^
|
||||
|
@ -153,7 +153,7 @@ LL | asm!("bar4: nop\n nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:55:21
|
||||
--> $DIR/named-asm-labels.rs:53:21
|
||||
|
|
||||
LL | asm!("nop\n bar5: nop");
|
||||
| ^^^^
|
||||
|
@ -162,7 +162,7 @@ LL | asm!("nop\n bar5: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:56:21
|
||||
--> $DIR/named-asm-labels.rs:54:21
|
||||
|
|
||||
LL | asm!("nop\n bar6: bar7: nop");
|
||||
| ^^^^
|
||||
|
@ -171,7 +171,7 @@ LL | asm!("nop\n bar6: bar7: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:56:27
|
||||
--> $DIR/named-asm-labels.rs:54:27
|
||||
|
|
||||
LL | asm!("nop\n bar6: bar7: nop");
|
||||
| ^^^^
|
||||
|
@ -180,7 +180,7 @@ LL | asm!("nop\n bar6: bar7: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:63:13
|
||||
--> $DIR/named-asm-labels.rs:61:13
|
||||
|
|
||||
LL | blah2: nop
|
||||
| ^^^^^
|
||||
|
@ -189,7 +189,7 @@ LL | blah2: nop
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:64:13
|
||||
--> $DIR/named-asm-labels.rs:62:13
|
||||
|
|
||||
LL | blah3: nop
|
||||
| ^^^^^
|
||||
|
@ -198,7 +198,7 @@ LL | blah3: nop
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:73:19
|
||||
--> $DIR/named-asm-labels.rs:71:19
|
||||
|
|
||||
LL | nop ; blah4: nop
|
||||
| ^^^^^
|
||||
|
@ -207,7 +207,7 @@ LL | nop ; blah4: nop
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:87:15
|
||||
--> $DIR/named-asm-labels.rs:85:15
|
||||
|
|
||||
LL | asm!("blah1: 2bar: nop");
|
||||
| ^^^^^
|
||||
|
@ -216,7 +216,7 @@ LL | asm!("blah1: 2bar: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:90:15
|
||||
--> $DIR/named-asm-labels.rs:88:15
|
||||
|
|
||||
LL | asm!("def: def: nop");
|
||||
| ^^^
|
||||
|
@ -225,7 +225,7 @@ LL | asm!("def: def: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:90:15
|
||||
--> $DIR/named-asm-labels.rs:88:15
|
||||
|
|
||||
LL | asm!("def: def: nop");
|
||||
| ^^^
|
||||
|
@ -235,7 +235,7 @@ LL | asm!("def: def: nop");
|
|||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:93:15
|
||||
--> $DIR/named-asm-labels.rs:91:15
|
||||
|
|
||||
LL | asm!("def: nop\ndef: nop");
|
||||
| ^^^
|
||||
|
@ -244,7 +244,7 @@ LL | asm!("def: nop\ndef: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:93:15
|
||||
--> $DIR/named-asm-labels.rs:91:15
|
||||
|
|
||||
LL | asm!("def: nop\ndef: nop");
|
||||
| ^^^
|
||||
|
@ -254,7 +254,7 @@ LL | asm!("def: nop\ndef: nop");
|
|||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:96:15
|
||||
--> $DIR/named-asm-labels.rs:94:15
|
||||
|
|
||||
LL | asm!("def: nop; def: nop");
|
||||
| ^^^
|
||||
|
@ -263,7 +263,7 @@ LL | asm!("def: nop; def: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:96:15
|
||||
--> $DIR/named-asm-labels.rs:94:15
|
||||
|
|
||||
LL | asm!("def: nop; def: nop");
|
||||
| ^^^
|
||||
|
@ -273,7 +273,7 @@ LL | asm!("def: nop; def: nop");
|
|||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:106:15
|
||||
--> $DIR/named-asm-labels.rs:104:15
|
||||
|
|
||||
LL | asm!("fooo\u{003A} nop");
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
@ -282,7 +282,7 @@ LL | asm!("fooo\u{003A} nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:107:15
|
||||
--> $DIR/named-asm-labels.rs:105:15
|
||||
|
|
||||
LL | asm!("foooo\x3A nop");
|
||||
| ^^^^^^^^^^^^^
|
||||
|
@ -291,7 +291,7 @@ LL | asm!("foooo\x3A nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:110:15
|
||||
--> $DIR/named-asm-labels.rs:108:15
|
||||
|
|
||||
LL | asm!("fooooo:\u{000A} nop");
|
||||
| ^^^^^^
|
||||
|
@ -300,7 +300,7 @@ LL | asm!("fooooo:\u{000A} nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:111:15
|
||||
--> $DIR/named-asm-labels.rs:109:15
|
||||
|
|
||||
LL | asm!("foooooo:\x0A nop");
|
||||
| ^^^^^^^
|
||||
|
@ -309,7 +309,7 @@ LL | asm!("foooooo:\x0A nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:115:14
|
||||
--> $DIR/named-asm-labels.rs:113:14
|
||||
|
|
||||
LL | asm!("\x41\x42\x43\x3A\x20\x6E\x6F\x70");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -319,7 +319,7 @@ LL | asm!("\x41\x42\x43\x3A\x20\x6E\x6F\x70");
|
|||
= note: the label may be declared in the expansion of a macro
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:123:13
|
||||
--> $DIR/named-asm-labels.rs:121:13
|
||||
|
|
||||
LL | ab: nop // ab: does foo
|
||||
| ^^
|
||||
|
@ -328,7 +328,7 @@ LL | ab: nop // ab: does foo
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:144:19
|
||||
--> $DIR/named-asm-labels.rs:142:19
|
||||
|
|
||||
LL | asm!("test_{}: nop", in(reg) 10);
|
||||
| ^^^^^^^
|
||||
|
@ -338,7 +338,7 @@ LL | asm!("test_{}: nop", in(reg) 10);
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:146:15
|
||||
--> $DIR/named-asm-labels.rs:144:15
|
||||
|
|
||||
LL | asm!("test_{}: nop", const 10);
|
||||
| ^^^^^^^
|
||||
|
@ -348,7 +348,7 @@ LL | asm!("test_{}: nop", const 10);
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:147:15
|
||||
--> $DIR/named-asm-labels.rs:145:15
|
||||
|
|
||||
LL | asm!("test_{}: nop", sym main);
|
||||
| ^^^^^^^
|
||||
|
@ -358,7 +358,7 @@ LL | asm!("test_{}: nop", sym main);
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:148:15
|
||||
--> $DIR/named-asm-labels.rs:146:15
|
||||
|
|
||||
LL | asm!("{}_test: nop", const 10);
|
||||
| ^^^^^^^
|
||||
|
@ -368,7 +368,7 @@ LL | asm!("{}_test: nop", const 10);
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:149:15
|
||||
--> $DIR/named-asm-labels.rs:147:15
|
||||
|
|
||||
LL | asm!("test_{}_test: nop", const 10);
|
||||
| ^^^^^^^^^^^^
|
||||
|
@ -378,7 +378,7 @@ LL | asm!("test_{}_test: nop", const 10);
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:150:15
|
||||
--> $DIR/named-asm-labels.rs:148:15
|
||||
|
|
||||
LL | asm!("{}: nop", const 10);
|
||||
| ^^
|
||||
|
@ -388,7 +388,7 @@ LL | asm!("{}: nop", const 10);
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:152:15
|
||||
--> $DIR/named-asm-labels.rs:150:15
|
||||
|
|
||||
LL | asm!("{uwu}: nop", uwu = const 10);
|
||||
| ^^^^^
|
||||
|
@ -398,7 +398,7 @@ LL | asm!("{uwu}: nop", uwu = const 10);
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:153:15
|
||||
--> $DIR/named-asm-labels.rs:151:15
|
||||
|
|
||||
LL | asm!("{0}: nop", const 10);
|
||||
| ^^^
|
||||
|
@ -408,7 +408,7 @@ LL | asm!("{0}: nop", const 10);
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:154:15
|
||||
--> $DIR/named-asm-labels.rs:152:15
|
||||
|
|
||||
LL | asm!("{1}: nop", "/* {0} */", const 10, const 20);
|
||||
| ^^^
|
||||
|
@ -418,7 +418,7 @@ LL | asm!("{1}: nop", "/* {0} */", const 10, const 20);
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:157:14
|
||||
--> $DIR/named-asm-labels.rs:155:14
|
||||
|
|
||||
LL | asm!(include_str!("named-asm-labels.s"));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -428,7 +428,7 @@ LL | asm!(include_str!("named-asm-labels.s"));
|
|||
= note: the label may be declared in the expansion of a macro
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:157:14
|
||||
--> $DIR/named-asm-labels.rs:155:14
|
||||
|
|
||||
LL | asm!(include_str!("named-asm-labels.s"));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -439,7 +439,7 @@ LL | asm!(include_str!("named-asm-labels.s"));
|
|||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:157:14
|
||||
--> $DIR/named-asm-labels.rs:155:14
|
||||
|
|
||||
LL | asm!(include_str!("named-asm-labels.s"));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -450,7 +450,7 @@ LL | asm!(include_str!("named-asm-labels.s"));
|
|||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:157:14
|
||||
--> $DIR/named-asm-labels.rs:155:14
|
||||
|
|
||||
LL | asm!(include_str!("named-asm-labels.s"));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -461,7 +461,7 @@ LL | asm!(include_str!("named-asm-labels.s"));
|
|||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:171:19
|
||||
--> $DIR/named-asm-labels.rs:169:19
|
||||
|
|
||||
LL | asm!("warned: nop");
|
||||
| ^^^^^^
|
||||
|
@ -469,13 +469,13 @@ LL | asm!("warned: nop");
|
|||
= help: only local labels of the form `<number>:` should be used in inline asm
|
||||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
note: the lint level is defined here
|
||||
--> $DIR/named-asm-labels.rs:169:16
|
||||
--> $DIR/named-asm-labels.rs:167:16
|
||||
|
|
||||
LL | #[warn(named_asm_labels)]
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:180:17
|
||||
--> $DIR/named-asm-labels.rs:178:17
|
||||
|
|
||||
LL | naked_asm!(".Lfoo: mov rax, {}; ret;", "nop", const 1)
|
||||
| ^^^^^
|
||||
|
@ -484,7 +484,7 @@ LL | naked_asm!(".Lfoo: mov rax, {}; ret;", "nop", const 1)
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:187:20
|
||||
--> $DIR/named-asm-labels.rs:185:20
|
||||
|
|
||||
LL | unsafe { asm!(".Lbar: mov rax, {}; ret;", "nop", const 1, options(noreturn)) }
|
||||
| ^^^^^
|
||||
|
@ -493,7 +493,7 @@ LL | unsafe { asm!(".Lbar: mov rax, {}; ret;", "nop", const 1, options(noret
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:195:17
|
||||
--> $DIR/named-asm-labels.rs:193:17
|
||||
|
|
||||
LL | naked_asm!(".Laaa: nop; ret;")
|
||||
| ^^^^^
|
||||
|
@ -502,7 +502,7 @@ LL | naked_asm!(".Laaa: nop; ret;")
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:205:21
|
||||
--> $DIR/named-asm-labels.rs:203:21
|
||||
|
|
||||
LL | naked_asm!(".Lbbb: nop; ret;")
|
||||
| ^^^^^
|
||||
|
@ -511,7 +511,7 @@ LL | naked_asm!(".Lbbb: nop; ret;")
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:214:15
|
||||
--> $DIR/named-asm-labels.rs:212:15
|
||||
|
|
||||
LL | asm!("closure1: nop");
|
||||
| ^^^^^^^^
|
||||
|
@ -520,7 +520,7 @@ LL | asm!("closure1: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:218:15
|
||||
--> $DIR/named-asm-labels.rs:216:15
|
||||
|
|
||||
LL | asm!("closure2: nop");
|
||||
| ^^^^^^^^
|
||||
|
@ -529,7 +529,7 @@ LL | asm!("closure2: nop");
|
|||
= note: see the asm section of Rust By Example <https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html#labels> for more information
|
||||
|
||||
error: avoid using named labels in inline assembly
|
||||
--> $DIR/named-asm-labels.rs:228:19
|
||||
--> $DIR/named-asm-labels.rs:226:19
|
||||
|
|
||||
LL | asm!("closure3: nop");
|
||||
| ^^^^^^^^
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
//@ run-pass
|
||||
//@ needs-asm-support
|
||||
|
||||
#![feature(naked_functions)]
|
||||
#![allow(dead_code)]
|
||||
|
||||
#[cfg(any(target_arch = "x86_64", target_arch = "x86"))]
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
//@ needs-asm-support
|
||||
|
||||
use std::arch::naked_asm;
|
||||
//~^ ERROR use of unstable library feature `naked_functions`
|
||||
|
||||
#[naked] //~ ERROR unsafe attribute used without unsafe
|
||||
//~^ ERROR the `#[naked]` attribute is an experimental feature
|
||||
extern "C" fn naked() {
|
||||
naked_asm!("")
|
||||
//~^ ERROR use of unstable library feature `naked_functions`
|
||||
}
|
||||
|
||||
#[naked] //~ ERROR unsafe attribute used without unsafe
|
||||
//~^ ERROR the `#[naked]` attribute is an experimental feature
|
||||
extern "C" fn naked_2() -> isize {
|
||||
naked_asm!("")
|
||||
//~^ ERROR use of unstable library feature `naked_functions`
|
||||
}
|
||||
|
||||
fn main() {}
|
|
@ -1,75 +0,0 @@
|
|||
error[E0658]: use of unstable library feature `naked_functions`
|
||||
--> $DIR/feature-gate-naked_functions.rs:9:5
|
||||
|
|
||||
LL | naked_asm!("")
|
||||
| ^^^^^^^^^
|
||||
|
|
||||
= note: see issue #90957 <https://github.com/rust-lang/rust/issues/90957> for more information
|
||||
= help: add `#![feature(naked_functions)]` to the crate attributes to enable
|
||||
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||
|
||||
error[E0658]: use of unstable library feature `naked_functions`
|
||||
--> $DIR/feature-gate-naked_functions.rs:16:5
|
||||
|
|
||||
LL | naked_asm!("")
|
||||
| ^^^^^^^^^
|
||||
|
|
||||
= note: see issue #90957 <https://github.com/rust-lang/rust/issues/90957> for more information
|
||||
= help: add `#![feature(naked_functions)]` to the crate attributes to enable
|
||||
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||
|
||||
error: unsafe attribute used without unsafe
|
||||
--> $DIR/feature-gate-naked_functions.rs:6:3
|
||||
|
|
||||
LL | #[naked]
|
||||
| ^^^^^ usage of unsafe attribute
|
||||
|
|
||||
help: wrap the attribute in `unsafe(...)`
|
||||
|
|
||||
LL | #[unsafe(naked)]
|
||||
| +++++++ +
|
||||
|
||||
error: unsafe attribute used without unsafe
|
||||
--> $DIR/feature-gate-naked_functions.rs:13:3
|
||||
|
|
||||
LL | #[naked]
|
||||
| ^^^^^ usage of unsafe attribute
|
||||
|
|
||||
help: wrap the attribute in `unsafe(...)`
|
||||
|
|
||||
LL | #[unsafe(naked)]
|
||||
| +++++++ +
|
||||
|
||||
error[E0658]: the `#[naked]` attribute is an experimental feature
|
||||
--> $DIR/feature-gate-naked_functions.rs:6:1
|
||||
|
|
||||
LL | #[naked]
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: see issue #90957 <https://github.com/rust-lang/rust/issues/90957> for more information
|
||||
= help: add `#![feature(naked_functions)]` to the crate attributes to enable
|
||||
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||
|
||||
error[E0658]: the `#[naked]` attribute is an experimental feature
|
||||
--> $DIR/feature-gate-naked_functions.rs:13:1
|
||||
|
|
||||
LL | #[naked]
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: see issue #90957 <https://github.com/rust-lang/rust/issues/90957> for more information
|
||||
= help: add `#![feature(naked_functions)]` to the crate attributes to enable
|
||||
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||
|
||||
error[E0658]: use of unstable library feature `naked_functions`
|
||||
--> $DIR/feature-gate-naked_functions.rs:3:5
|
||||
|
|
||||
LL | use std::arch::naked_asm;
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: see issue #90957 <https://github.com/rust-lang/rust/issues/90957> for more information
|
||||
= help: add `#![feature(naked_functions)]` to the crate attributes to enable
|
||||
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||
|
||||
error: aborting due to 7 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0658`.
|
|
@ -1,7 +1,7 @@
|
|||
//@ needs-asm-support
|
||||
//@ only-x86_64
|
||||
|
||||
#![feature(naked_functions, rust_cold_cc)]
|
||||
#![feature(rust_cold_cc)]
|
||||
|
||||
use std::arch::naked_asm;
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
//@ needs-asm-support
|
||||
//@ only-x86_64
|
||||
|
||||
#![feature(naked_functions)]
|
||||
|
||||
use std::arch::naked_asm;
|
||||
|
||||
#[unsafe(naked)]
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
error[E0658]: `#[target_feature(/* ... */)]` is currently unstable on `#[naked]` functions
|
||||
--> $DIR/feature-gate-naked_functions_target_feature.rs:9:1
|
||||
--> $DIR/feature-gate-naked_functions_target_feature.rs:7:1
|
||||
|
|
||||
LL | #[target_feature(enable = "avx2")]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
|
@ -2,9 +2,7 @@
|
|||
//! because `#[inline]` is ignored for such functions.
|
||||
|
||||
#![crate_type = "lib"]
|
||||
|
||||
#![feature(linkage)]
|
||||
#![feature(naked_functions)]
|
||||
#![deny(unused_attributes)]
|
||||
|
||||
#[inline]
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
error: `#[inline]` is ignored on externally exported functions
|
||||
--> $DIR/inline-exported.rs:10:1
|
||||
--> $DIR/inline-exported.rs:8:1
|
||||
|
|
||||
LL | #[inline]
|
||||
| ^^^^^^^^^
|
||||
|
|
||||
= help: externally exported functions are functions with `#[no_mangle]`, `#[export_name]`, or `#[linkage]`
|
||||
note: the lint level is defined here
|
||||
--> $DIR/inline-exported.rs:8:9
|
||||
--> $DIR/inline-exported.rs:6:9
|
||||
|
|
||||
LL | #![deny(unused_attributes)]
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: `#[inline]` is ignored on externally exported functions
|
||||
--> $DIR/inline-exported.rs:15:1
|
||||
--> $DIR/inline-exported.rs:13:1
|
||||
|
|
||||
LL | #[inline]
|
||||
| ^^^^^^^^^
|
||||
|
@ -20,7 +20,7 @@ LL | #[inline]
|
|||
= help: externally exported functions are functions with `#[no_mangle]`, `#[export_name]`, or `#[linkage]`
|
||||
|
||||
error: `#[inline]` is ignored on externally exported functions
|
||||
--> $DIR/inline-exported.rs:20:1
|
||||
--> $DIR/inline-exported.rs:18:1
|
||||
|
|
||||
LL | #[inline]
|
||||
| ^^^^^^^^^
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
//@ needs-asm-support
|
||||
#![feature(naked_functions)]
|
||||
|
||||
use std::arch::naked_asm;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
error[E0736]: attribute incompatible with `#[unsafe(naked)]`
|
||||
--> $DIR/error-with-naked.rs:6:1
|
||||
--> $DIR/error-with-naked.rs:5:1
|
||||
|
|
||||
LL | #[track_caller]
|
||||
| ^^^^^^^^^^^^^^^ the `track_caller` attribute is incompatible with `#[unsafe(naked)]`
|
||||
|
@ -8,7 +8,7 @@ LL | #[unsafe(naked)]
|
|||
| ---------------- function marked with `#[unsafe(naked)]` here
|
||||
|
||||
error[E0736]: attribute incompatible with `#[unsafe(naked)]`
|
||||
--> $DIR/error-with-naked.rs:18:5
|
||||
--> $DIR/error-with-naked.rs:17:5
|
||||
|
|
||||
LL | #[track_caller]
|
||||
| ^^^^^^^^^^^^^^^ the `track_caller` attribute is incompatible with `#[unsafe(naked)]`
|
||||
|
@ -17,13 +17,13 @@ LL | #[unsafe(naked)]
|
|||
| ---------------- function marked with `#[unsafe(naked)]` here
|
||||
|
||||
error[E0737]: `#[track_caller]` requires Rust ABI
|
||||
--> $DIR/error-with-naked.rs:6:1
|
||||
--> $DIR/error-with-naked.rs:5:1
|
||||
|
|
||||
LL | #[track_caller]
|
||||
| ^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0737]: `#[track_caller]` requires Rust ABI
|
||||
--> $DIR/error-with-naked.rs:18:5
|
||||
--> $DIR/error-with-naked.rs:17:5
|
||||
|
|
||||
LL | #[track_caller]
|
||||
| ^^^^^^^^^^^^^^^
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue