| // run-pass |
| // ignore-cross-compile |
| // ignore-stage1 |
| |
| #![feature(rustc_private)] |
| |
| extern crate rustc; |
| |
| use rustc::mir::interpret::UndefMask; |
| use rustc::ty::layout::Size; |
| |
| fn main() { |
| let mut mask = UndefMask::new(Size::from_bytes(500), false); |
| assert!(!mask.get(Size::from_bytes(499))); |
| mask.set(Size::from_bytes(499), true); |
| assert!(mask.get(Size::from_bytes(499))); |
| mask.set_range_inbounds(Size::from_bytes(100), Size::from_bytes(256), true); |
| for i in 0..100 { |
| assert!(!mask.get(Size::from_bytes(i))); |
| } |
| for i in 100..256 { |
| assert!(mask.get(Size::from_bytes(i))); |
| } |
| for i in 256..499 { |
| assert!(!mask.get(Size::from_bytes(i))); |
| } |
| } |