Skip to main content

## UNSAFE_CODE

# Static UNSAFE_CODE

Source

    pub static UNSAFE_CODE: &Lint

Expand description

The `unsafe_code` lint catches usage of `unsafe` code and other potentially unsound constructs like `no_mangle`, `export_name`, and `link_section`.

#### §Example

ⓘ

    #![deny(unsafe_code)]
    fn main() {
        unsafe {

        }
    }

    #[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}}

#### §Explanation

This lint is intended to restrict the usage of `unsafe` blocks and other constructs (including, but not limited to `no_mangle`, `link_section` and `export_name` attributes) wrong usage of which causes undefined behavior.