Error code E0736

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:

#![allow(unused)] fn main() { #[inline] #[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.