Improve document of unsafe_code lint

Signed-off-by: Eval EXEC <execvy@gmail.com>
This commit is contained in:
Eval EXEC 2023-06-09 16:11:23 +08:00
parent 9c843d9fa3
commit 30f84c4d17
No known key found for this signature in database
GPG Key ID: 0F0272C0D3AC91F7

View File

@ -286,7 +286,9 @@ impl<'tcx> LateLintPass<'tcx> for NonShorthandFieldPatterns {
} }
declare_lint! { declare_lint! {
/// The `unsafe_code` lint catches usage of `unsafe` code. /// The `unsafe_code` lint catches usage of `unsafe` code and other
/// potentially unsound constructs like `no_mangle`, `export_name`,
/// and `link_section`.
/// ///
/// ### Example /// ### Example
/// ///
@ -297,17 +299,29 @@ declare_lint! {
/// ///
/// } /// }
/// } /// }
///
/// #[no_mangle]
/// fn func_0() { }
///
/// #[export_name = "exported_symbol_name"]
/// pub fn name_in_rust() { }
///
/// #[no_mangle]
/// #[link_section = ".example_section"]
/// pub static VAR1: u32 = 1;
/// ``` /// ```
/// ///
/// {{produces}} /// {{produces}}
/// ///
/// ### Explanation /// ### Explanation
/// ///
/// This lint is intended to restrict the usage of `unsafe`, which can be /// This lint is intended to restrict the usage of `unsafe` blocks and other
/// difficult to use correctly. /// constructs (including, but not limited to `no_mangle`, `link_section`
/// and `export_name` attributes) wrong usage of which causes undefined
/// behavior.
UNSAFE_CODE, UNSAFE_CODE,
Allow, Allow,
"usage of `unsafe` code" "usage of `unsafe` code and other potentially unsound constructs"
} }
declare_lint_pass!(UnsafeCode => [UNSAFE_CODE]); declare_lint_pass!(UnsafeCode => [UNSAFE_CODE]);