diff options
| author | bors <bors@rust-lang.org> | 2016-03-18 06:54:58 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2016-03-18 06:54:58 -0700 |
| commit | 235d77457d80b549dad3ac36d94f235208a1eafb (patch) | |
| tree | 3953e3cfb101a5b2738a9a27a0d0faa948662f20 /src/libstd | |
| parent | 2de6ddd75e202acdedfcd05b51a863dcc10459ca (diff) | |
| parent | b12dcdef4fae5e3856e6911fd6cfbeedadcf3821 (diff) | |
| download | rust-235d77457d80b549dad3ac36d94f235208a1eafb.tar.gz rust-235d77457d80b549dad3ac36d94f235208a1eafb.zip | |
Auto merge of #32080 - eddyb:transcendent, r=nikomatsakis
Refactor call & function handling in trans, enable MIR bootstrap. Non-Rust and Rust ABIs were combined into a common codepath, which means: * The ugly `__rust_abi` "clown shoes" shim for C->Rust FFI is gone, fixes #10116. * Methods, *including virtual ones* support non-Rust ABIs, closes #30235. * Non-Rust ABIs also pass fat pointers in two arguments; the result should be identical. * Zero-sized types are never passed as arguments; again, behavior shouldn't change. Additionally, MIR support for calling intrinsics (through old trans) was implemented. Alongside assorted fixes, it enabled MIR to launch :rocket: and do a *complete* bootstrap. To try it yourself, `./configure --enable-orbit` *or* `make RUSTFLAGS="-Z orbit"`.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/lib.rs | 1 | ||||
| -rw-r--r-- | src/libstd/num/f32.rs | 1 | ||||
| -rw-r--r-- | src/libstd/num/f64.rs | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index cd0e3a030bd..85e48f85d3d 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -251,6 +251,7 @@ #![feature(raw)] #![feature(repr_simd)] #![feature(reflect_marker)] +#![feature(rustc_attrs)] #![feature(shared)] #![feature(slice_bytes)] #![feature(slice_concat_ext)] diff --git a/src/libstd/num/f32.rs b/src/libstd/num/f32.rs index 37053025924..e78d46b22e9 100644 --- a/src/libstd/num/f32.rs +++ b/src/libstd/num/f32.rs @@ -1371,6 +1371,7 @@ mod tests { } #[test] + #[rustc_no_mir] // FIXME #27840 MIR NAN ends up negative. fn test_integer_decode() { assert_eq!(3.14159265359f32.integer_decode(), (13176795, -22, 1)); assert_eq!((-8573.5918555f32).integer_decode(), (8779358, -10, -1)); diff --git a/src/libstd/num/f64.rs b/src/libstd/num/f64.rs index 446e22a20ad..cea5a9edd68 100644 --- a/src/libstd/num/f64.rs +++ b/src/libstd/num/f64.rs @@ -1264,6 +1264,7 @@ mod tests { } #[test] + #[rustc_no_mir] // FIXME #27840 MIR NAN ends up negative. fn test_integer_decode() { assert_eq!(3.14159265359f64.integer_decode(), (7074237752028906, -51, 1)); assert_eq!((-8573.5918555f64).integer_decode(), (4713381968463931, -39, -1)); |
