rust/tests/compile-fail/overflow_check_conditional.rs

62 lines
1.2 KiB
Rust
Raw Normal View History

2016-03-06 09:01:17 -06:00
#![feature(plugin)]
#![plugin(clippy)]
2016-03-08 07:36:21 -06:00
#![allow(many_single_char_names)]
2016-03-06 09:01:17 -06:00
#![deny(overflow_check_conditional)]
fn main() {
let a: u32 = 1;
let b: u32 = 2;
let c: u32 = 3;
if a + b < a { //~ERROR You are trying to use classic C overflow conditions that will fail in Rust.
2016-03-06 09:01:17 -06:00
2016-03-07 23:33:30 -06:00
}
if a > a + b { //~ERROR You are trying to use classic C overflow conditions that will fail in Rust.
2016-03-07 23:33:30 -06:00
2016-03-06 09:01:17 -06:00
}
if a + b < b { //~ERROR You are trying to use classic C overflow conditions that will fail in Rust.
2016-03-06 09:01:17 -06:00
2016-03-07 23:33:30 -06:00
}
if b > a + b { //~ERROR You are trying to use classic C overflow conditions that will fail in Rust.
2016-03-07 23:33:30 -06:00
2016-03-07 15:27:45 -06:00
}
if a - b > b { //~ERROR You are trying to use classic C underflow conditions that will fail in Rust.
2016-03-07 15:27:45 -06:00
2016-03-07 23:33:30 -06:00
}
if b < a - b { //~ERROR You are trying to use classic C underflow conditions that will fail in Rust.
2016-03-07 23:33:30 -06:00
2016-03-07 15:27:45 -06:00
}
if a - b > a { //~ERROR You are trying to use classic C underflow conditions that will fail in Rust.
2016-03-07 15:27:45 -06:00
2016-03-07 23:33:30 -06:00
}
if a < a - b { //~ERROR You are trying to use classic C underflow conditions that will fail in Rust.
2016-03-07 23:33:30 -06:00
2016-03-06 09:01:17 -06:00
}
if a + b < c {
2016-03-07 23:33:30 -06:00
}
if c > a + b {
2016-03-07 15:27:45 -06:00
}
if a - b < c {
2016-03-07 23:33:30 -06:00
}
if c > a - b {
2016-03-06 09:01:17 -06:00
}
let i = 1.1;
let j = 2.2;
if i + j < i {
2016-03-07 15:27:45 -06:00
}
if i - j < i {
2016-03-07 23:33:30 -06:00
}
if i > i + j {
}
if i - j < i {
2016-03-06 09:01:17 -06:00
}
}