summaryrefslogtreecommitdiffstats
path: root/src/test/ui-fulldeps/uninit_mask.rs
blob: 84ce291016aafbeee2d614356b5f0e841b4aeb2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// run-pass
// ignore-cross-compile
// ignore-stage1

#![feature(rustc_private)]

extern crate rustc_middle;
extern crate rustc_target;

use rustc_middle::mir::interpret::InitMask;
use rustc_target::abi::Size;

fn main() {
    let mut mask = InitMask::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)));
    }
}