diff options
Diffstat (limited to 'src/test/ui-fulldeps/undef_mask.rs')
| -rw-r--r-- | src/test/ui-fulldeps/undef_mask.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/ui-fulldeps/undef_mask.rs b/src/test/ui-fulldeps/undef_mask.rs new file mode 100644 index 00000000000..0caccad6229 --- /dev/null +++ b/src/test/ui-fulldeps/undef_mask.rs @@ -0,0 +1,27 @@ +// 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))); + } +} |
