Skip to content

Commit 7942e77

Browse files
committed
Auto merge of #1552 - RalfJung:rustup, r=RalfJung
rustup; make sure the generator moves even with smarter optimizations
2 parents e086ae5 + 08e076c commit 7942e77

File tree

4 files changed

+8
-6
lines changed

4 files changed

+8
-6
lines changed

rust-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7bdb5dee7bac15458b10b148e9e24968e633053e
1+
a3bc0e752fad96f537b73f4e9bc805a73d404f7b

tests/compile-fail/generator-pinned-moved.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ where
3434

3535
fn main() {
3636
let mut generator_iterator_2 = {
37-
let mut generator_iterator = GeneratorIteratorAdapter(firstn());
37+
let mut generator_iterator = Box::new(GeneratorIteratorAdapter(firstn()));
3838
generator_iterator.next(); // pin it
3939

40-
generator_iterator // move it
40+
Box::new(*generator_iterator) // move it
4141
}; // *deallocate* generator_iterator
4242

4343
generator_iterator_2.next(); // and use moved value

tests/compile-fail/storage_dead_dangling.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
// This should fail even without validation
2-
// compile-flags: -Zmiri-disable-validation
1+
// This should fail even without validation, but some MIR opts mask the error
2+
// compile-flags: -Zmiri-disable-validation -Zmir-opt-level=0
33

44
static mut LEAK: usize = 0;
55

tests/compile-fail/validity/transmute_through_ptr.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#[repr(u32)]
2+
#[derive(Debug)]
23
enum Bool { True }
34

45
fn evil(x: &mut Bool) {
@@ -9,6 +10,7 @@ fn evil(x: &mut Bool) {
910
fn main() {
1011
let mut x = Bool::True;
1112
evil(&mut x);
12-
let _y = x; // reading this ought to be enough to trigger validation
13+
let y = x; // reading this ought to be enough to trigger validation
1314
//~^ ERROR encountered 0x0000002c at .<enum-tag>, but expected a valid enum tag
15+
println!("{:?}", y); // make sure it is used (and not optimized away)
1416
}

0 commit comments

Comments
 (0)