Rust errors / Attributes, macros and features
Rust compiler error · checked with rustc 1.99.0
Rust error E0736: attribute incompatible with `#[unsafe(naked)]`
What it meansFunctions marked with the #[naked] attribute are restricted in what other attributes they may be marked with.
What rustc prints
error[E0736]: attribute incompatible with `#[unsafe(naked)]`
--> main.rs:1:3
|
1 | #[inline]
| ^^^^^^ the `inline` attribute is incompatible with `#[unsafe(naked)]`
2 | #[unsafe(naked)]
| ---------------- function marked with `#[unsafe(naked)]` hereReal output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.
The compiler team's explanation
Functions marked with the #[naked] attribute are restricted in what other attributes they may be marked with.
Notable attributes that are incompatible with #[naked] are:
#[inline]#[track_caller]#[test],#[ignore],#[should_panic]
Erroneous code example:
#[inline]
#[unsafe(naked)]
fn foo() {}
These incompatibilities are due to the fact that naked functions deliberately impose strict restrictions regarding the code that the compiler is allowed to produce for this function.
From rustc --explain E0736 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0658is unstable
- E0731transparent enum needs exactly one variant, but has 2
- E0732`#[repr(inttype)]` must be specified for enums with explicit discriminants and non-unit variants
- E0774`derive` may only be applied to `struct`s, `enum`s and `union`s
- E0795`Some` is an enum variant; expected field at end of `offset_of`
Up next
Often hit nextE0658: is unstableA related error from the same family.Read it next →Did this answer your question?