Merge branch 'master' of https://github.com/rust-lang/rust into gen

# Conflicts:
#	src/librustc_mir/build/scope.rs
This commit is contained in:
John Kåre Alsaker 2017-08-12 07:11:19 +02:00
commit d020ff0c68
33 changed files with 529 additions and 321 deletions

View file

@ -34,10 +34,9 @@ fn foo(i: i32) {
// let _1: D;
// let _2: i32;
// let _3: &'6_2rce i32;
// let _7: &'6_4rce i32;
// let _6: &'6_4rce i32;
// let mut _4: ();
// let mut _5: i32;
// let mut _6: ();
// bb0: {
// StorageLive(_1);
// _1 = D::{{constructor}}(const 0i32,);
@ -51,10 +50,10 @@ fn foo(i: i32) {
// }
// bb1: {
// StorageDead(_5);
// StorageLive(_7);
// _7 = &'6_4rce _2;
// StorageLive(_6);
// _6 = &'6_4rce _2;
// _0 = ();
// StorageDead(_7);
// StorageDead(_6);
// EndRegion('6_4rce);
// StorageDead(_3);
// EndRegion('6_2rce);

View file

@ -33,7 +33,6 @@ fn foo<F>(f: F) where F: FnOnce() -> i32 {
// let mut _2: ();
// let mut _3: [closure@NodeId(18) d:&'19mce D];
// let mut _4: &'19mce D;
// let mut _5: ();
// bb0: {
// StorageLive(_1);
// _1 = D::{{constructor}}(const 0i32,);

View file

@ -33,7 +33,6 @@ fn foo<F>(f: F) where F: FnOnce() -> i32 {
// let mut _2: ();
// let mut _3: [closure@NodeId(22) d:&'23mce D];
// let mut _4: &'23mce D;
// let mut _5: ();
// bb0: {
// StorageLive(_1);
// _1 = D::{{constructor}}(const 0i32,);

View file

@ -33,7 +33,6 @@ fn foo<F>(f: F) where F: FnOnce() -> i32 {
// let mut _2: ();
// let mut _3: [closure@NodeId(22) d:D];
// let mut _4: D;
// let mut _5: ();
//
// bb0: {
// StorageLive(_1);
@ -77,7 +76,6 @@ fn foo<F>(f: F) where F: FnOnce() -> i32 {
// let mut _0: i32;
// let _2: &'14_0rce D;
// let mut _3: i32;
// let mut _4: ();
//
// bb0: {
// StorageLive(_2);

View file

@ -35,7 +35,6 @@ fn foo<F>(f: F) where F: FnOnce() -> i32 {
// let mut _3: ();
// let mut _4: [closure@NodeId(22) r:&'6_1rce D];
// let mut _5: &'6_1rce D;
// let mut _6: ();
// bb0: {
// StorageLive(_1);
// _1 = D::{{constructor}}(const 0i32,);

View file

@ -39,8 +39,7 @@ impl S {
// let mut _2: S;
// let mut _3: S;
// let mut _4: S;
// let mut _5: ();
// let mut _6: bool;
// let mut _5: bool;
//
// bb0: {
// END rustc.node4.ElaborateDrops.after.mir
@ -50,9 +49,8 @@ impl S {
// let mut _2: S;
// let mut _3: ();
// let mut _4: S;
// let mut _5: ();
// let mut _6: S;
// let mut _7: bool;
// let mut _5: S;
// let mut _6: bool;
//
// bb0: {
// END rustc.node13.ElaborateDrops.after.mir

View file

@ -161,6 +161,11 @@ fn vec_simple(a: &Allocator) {
let _x = vec![a.alloc(), a.alloc(), a.alloc(), a.alloc()];
}
#[allow(unreachable_code)]
fn vec_unreachable(a: &Allocator) {
let _x = vec![a.alloc(), a.alloc(), a.alloc(), return];
}
fn run_test<F>(mut f: F)
where F: FnMut(&Allocator)
{
@ -209,6 +214,7 @@ fn main() {
run_test(|a| array_simple(a));
run_test(|a| vec_simple(a));
run_test(|a| vec_unreachable(a));
run_test(|a| struct_dynamic_drop(a, false, false, false));
run_test(|a| struct_dynamic_drop(a, false, false, true));