pub const fn overflow_checks() -> bool
core_intrinsics)
Returns whether we should perform some overflow-checking at runtime. This eventually evaluates to cfg!(overflow_checks), but behaves different from cfg! when mixing crates built with different flags: if the crate has overflow checks enabled or carries the #[rustc_inherit_overflow_checks] attribute, evaluation is delayed until monomorphization (or until the call gets inlined into a crate that does not delay evaluation further); otherwise it can happen any time.
The common case here is a user program built with overflow_checks linked against the distributed sysroot which is built without overflow_checks but with #[rustc_inherit_overflow_checks]. For code that gets monomorphized in the user crate (i.e., generic functions and functions with #[inline]), gating assertions on overflow_checks() rather than cfg!(overflow_checks) means that assertions are enabled whenever the user crate has overflow checks enabled. However if the user has overflow checks disabled, the checks will still get optimized out.
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/intrinsics/fn.overflow_checks.html