Rollup merge of #112260 - eval-exec:exec/fix-unsafe_code_lint, r=WaffleLapkin
Improve document of `unsafe_code` lint This PR add another `unsafe_code` lint example, want to close #111967
This commit is contained in:
commit
a7f46af369
1 changed files with 18 additions and 4 deletions
|
@ -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]);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue