Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
librustc: Pass the correct type when adding cleanups.
- Loading branch information
Showing
3 changed files
with
55 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT | ||
// file at the top-level directory of this distribution and at | ||
// http://rust-lang.org/COPYRIGHT. | ||
// | ||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or | ||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license | ||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your | ||
// option. This file may not be copied, modified, or distributed | ||
// except according to those terms. | ||
|
||
#[allow(unnecessary_allocation)]; | ||
|
||
// Tests for a previous bug that occured due to an interaction | ||
// between struct field initialization and the auto-coercion | ||
// from a vector to a slice. The drop glue was being invoked on | ||
// the temporary slice with a wrong type, triggering an LLVM assert. | ||
|
||
struct Thing1<'self> { | ||
baz: &'self [~int], | ||
bar: ~u64, | ||
} | ||
|
||
struct Thing2<'self> { | ||
baz: &'self [~int], | ||
bar: u64, | ||
} | ||
|
||
pub fn main() { | ||
let _t1_fixed = Thing1 { | ||
baz: [], | ||
bar: ~32, | ||
}; | ||
let _t1_uniq = Thing1 { | ||
baz: ~[], | ||
bar: ~32, | ||
}; | ||
let _t1_at = Thing1 { | ||
baz: @[], | ||
bar: ~32, | ||
}; | ||
let _t2_fixed = Thing2 { | ||
baz: [], | ||
bar: 32, | ||
}; | ||
let _t2_uniq = Thing2 { | ||
baz: ~[], | ||
bar: 32, | ||
}; | ||
let _t2_at = Thing2 { | ||
baz: @[], | ||
bar: 32, | ||
}; | ||
} |
920ca61
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
saw approval from nikomatsakis
at luqmana@920ca61
920ca61
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
merging luqmana/rust/9382 = 920ca61 into auto
920ca61
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
luqmana/rust/9382 = 920ca61 merged ok, testing candidate = 7c719ec
920ca61
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all tests pass:
success: http://buildbot.rust-lang.org/builders/auto-mac-32-opt/builds/2851
success: http://buildbot.rust-lang.org/builders/auto-mac-32-nopt-c/builds/696
success: http://buildbot.rust-lang.org/builders/auto-mac-32-nopt-t/builds/696
success: http://buildbot.rust-lang.org/builders/auto-mac-64-opt/builds/2855
success: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-c/builds/1961
success: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-t/builds/1960
success: http://buildbot.rust-lang.org/builders/auto-linux-32-opt/builds/2867
success: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-c/builds/1959
success: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-t/builds/1960
success: http://buildbot.rust-lang.org/builders/auto-linux-64-opt/builds/2869
success: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-c/builds/1959
success: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-t/builds/1959
success: http://buildbot.rust-lang.org/builders/auto-linux-64-x-android/builds/2035
success: http://buildbot.rust-lang.org/builders/auto-win-32-opt/builds/2856
success: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-c/builds/1960
success: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-t/builds/1962
success: http://buildbot.rust-lang.org/builders/auto-bsd-64-opt/builds/2631
920ca61
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fast-forwarding master to auto = 7c719ec