about summary refs log tree commit diff
path: root/tests/ui/feature-gates/feature-gate-cfg_overflow_checks.rs
diff options
context:
space:
mode:
authorAngelicosPhosphoros <xuzin.timur@gmail.com>2023-05-02 17:53:11 +0400
committerAngelicosPhosphoros <xuzin.timur@gmail.com>2023-05-11 18:06:31 +0400
commit7c263adb2afc310b96422bd33317407bc5385bf9 (patch)
treee5c2a5db3896f6832dfe64f857461c292c463f3e /tests/ui/feature-gates/feature-gate-cfg_overflow_checks.rs
parentf8d8ffa2eba53928662dc57bc3a6c5608beb26f1 (diff)
downloadrust-7c263adb2afc310b96422bd33317407bc5385bf9.tar.gz
rust-7c263adb2afc310b96422bd33317407bc5385bf9.zip
Add support for `cfg(overflow_checks)`
This PR adds support for detecting if overflow checks are enabled in similar fashion as debug_assertions are detected.
Possible use-case of this, for example, if we want to use checked integer casts in builds with overflow checks, e.g.

```rust
pub fn cast(val: usize)->u16 {
    if cfg!(overflow_checks) {
        val.try_into().unwrap()
    }
    else{
        vas as _
    }
}
```

Resolves #91130.
Tracking issue: #111466.
Diffstat (limited to 'tests/ui/feature-gates/feature-gate-cfg_overflow_checks.rs')
-rw-r--r--tests/ui/feature-gates/feature-gate-cfg_overflow_checks.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/tests/ui/feature-gates/feature-gate-cfg_overflow_checks.rs b/tests/ui/feature-gates/feature-gate-cfg_overflow_checks.rs
new file mode 100644
index 00000000000..cb265aa7f25
--- /dev/null
+++ b/tests/ui/feature-gates/feature-gate-cfg_overflow_checks.rs
@@ -0,0 +1,6 @@
+#![crate_type = "lib"]
+
+#[cfg(overflow_checks)] //~ ERROR `cfg(overflow_checks)` is experimental
+pub fn cast(v: i64)->u32{
+    todo!()
+}