]> git.proxmox.com Git - rustc.git/blame - src/test/ui/consts/const-negation.rs
New upstream version 1.50.0+dfsg1
[rustc.git] / src / test / ui / consts / const-negation.rs
CommitLineData
b7449926
XL
1// run-pass
2#![allow(overflowing_literals)]
3
54a0048b
SL
4#[deny(const_err)]
5
6fn main() {
7 #[cfg(target_pointer_width = "32")]
8 const I: isize = -2147483648isize;
9 #[cfg(target_pointer_width = "64")]
10 const I: isize = -9223372036854775808isize;
fc512014 11 assert_eq!(i32::MIN as u64, 0xffffffff80000000);
54a0048b 12 assert_eq!(-2147483648isize as u64, 0xffffffff80000000);
0531ce1d 13 assert_eq!(-2147483648i32 as u64, 0xffffffff80000000);
fc512014 14 assert_eq!(i64::MIN as u64, 0x8000000000000000);
54a0048b
SL
15 #[cfg(target_pointer_width = "64")]
16 assert_eq!(-9223372036854775808isize as u64, 0x8000000000000000);
17 #[cfg(target_pointer_width = "32")]
18 assert_eq!(-9223372036854775808isize as u64, 0);
0531ce1d 19 assert_eq!(-9223372036854775808i32 as u64, 0);
fc512014 20 const J: usize = i32::MAX as usize;
54a0048b 21 const K: usize = -1i32 as u32 as usize;
fc512014
XL
22 const L: usize = i32::MIN as usize;
23 const M: usize = i64::MIN as usize;
54a0048b
SL
24 match 5 {
25 J => {},
26 K => {},
27 L => {},
28 M => {},
29 _ => {}
30 }
31 match 5 {
32 I => {},
33 _ => {}
34 }
35}