Skip to content

Commit f349223

Browse files
committed
add XFAIL test
1 parent 1ee81b4 commit f349223

3 files changed

Lines changed: 30 additions & 0 deletions

File tree

‎tests/unit/out/refcount/vector_bool_reference.rs‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,20 @@ fn main_0() -> i32 {
3131
v1.decay().offset(0_usize as isize)
3232
};
3333
assert!(!(v1.decay().offset(0_usize as isize).read()));
34+
{
35+
let v: Value<Vec<bool>> = Rc::new(RefCell::new(Vec::from([false, false, false])));
36+
let mut i: i32 = 0;
37+
let mut b: bool = (*{
38+
v.decay()
39+
.offset((i.postfix_inc() as usize) as isize)
40+
.write(true);
41+
v.decay().offset((i.postfix_inc() as usize) as isize)
42+
}
43+
.upgrade()
44+
.deref())
45+
.read();
46+
assert!(b);
47+
}
3448
return 0;
3549
}
3650
pub fn __cpp2rust_init_globals() {}

‎tests/unit/out/unsafe/vector_bool_reference.rs‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ unsafe fn main_0() -> i32 {
3333
(&mut (v1)[0_usize as usize] as *mut bool)
3434
};
3535
assert!(!(*(&mut (v1)[0_usize as usize] as *mut bool)));
36+
{
37+
let mut v: Vec<bool> = Vec::from([false, false, false]);
38+
let mut i: i32 = 0;
39+
let mut b: bool = *(*{
40+
*(&mut (v)[(i.postfix_inc() as usize) as usize] as *mut bool) = true;
41+
(&mut (v)[(i.postfix_inc() as usize) as usize] as *mut bool)
42+
});
43+
assert!(b);
44+
}
3645
return 0;
3746
}
3847
pub unsafe fn __cpp2rust_init_globals() {}

‎tests/unit/vector_bool_reference.cpp‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// XFAIL: refcount, unsafe
12
#include <cassert>
23
#include <vector>
34

@@ -13,5 +14,11 @@ int main() {
1314
assert(v1[0]);
1415
v1[0] = false;
1516
assert(!v1[0]);
17+
{
18+
std::vector<bool> v = {false, false, false };
19+
int i = 0;
20+
bool b = v[i++] = true;
21+
assert(b);
22+
}
1623
return 0;
1724
}

0 commit comments

Comments
 (0)