rustc_lint::builtin

Static MISSING_UNSAFE_ON_EXTERN

pub static MISSING_UNSAFE_ON_EXTERN: &'static Lint
Expand description

The missing_unsafe_on_extern lint detects missing unsafe keyword on extern declarations.

§Example

#![warn(missing_unsafe_on_extern)]
#![allow(dead_code)]

extern "C" {
    fn foo(_: i32);
}

fn main() {}

{{produces}}

§Explanation

Declaring extern items, even without ever using them, can cause Undefined Behavior. We should consider all sources of Undefined Behavior to be unsafe.

This is a future-incompatible lint to transition this to a hard error in the future.