| 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: | |
| ```compile_fail,E0736 | |
| #[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. |