about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2014-06-12 21:34:32 -0700
committerAlex Crichton <alex@alexcrichton.com>2014-06-13 13:53:55 -0700
commitb7af25060a1b0451cb06085ba5893980bc4e5333 (patch)
tree2a5a941e0da26795babf286edf77f9f225bc906d /src/libstd
parentf907d9772c55d942fb178622b0b2b5a8ca103c11 (diff)
downloadrust-b7af25060a1b0451cb06085ba5893980bc4e5333.tar.gz
rust-b7af25060a1b0451cb06085ba5893980bc4e5333.zip
Rolling up PRs in the queue
Closes #14797 (librustc: Fix the issue with labels shadowing variable names by making)
Closes #14823 (Improve error messages for io::fs)
Closes #14827 (libsyntax: Allow `+` to separate trait bounds from objects.)
Closes #14834 (configure: Don't sync unused submodules)
Closes #14838 (Remove typo on collections::treemap::UnionItems)
Closes #14839 (Fix the unused struct field lint for struct variants)
Closes #14840 (Clarify `Any` docs)
Closes #14846 (rustc: [T, ..N] and [T, ..N+1] are not the same)
Closes #14847 (Audit usage of NativeMutex)
Closes #14850 (remove unnecessary PaX detection)
Closes #14856 (librustc: Take in account mutability when casting array to raw ptr.)
Closes #14859 (librustc: Forbid `transmute` from being called on types whose size is)
Closes #14860 (Fix `quote_pat!` & parse outer attributes in `quote_item!`)
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/dynamic_lib.rs3
-rw-r--r--src/libstd/io/fs.rs8
-rw-r--r--src/libstd/rt/backtrace.rs8
3 files changed, 12 insertions, 7 deletions
diff --git a/src/libstd/dynamic_lib.rs b/src/libstd/dynamic_lib.rs
index 61f7997071e..76dbfa8c29e 100644
--- a/src/libstd/dynamic_lib.rs
+++ b/src/libstd/dynamic_lib.rs
@@ -158,6 +158,7 @@ mod test {
     use super::*;
     use prelude::*;
     use libc;
+    use mem;
 
     #[test]
     #[ignore(cfg(windows))] // FIXME #8818
@@ -174,7 +175,7 @@ mod test {
         let cosine: extern fn(libc::c_double) -> libc::c_double = unsafe {
             match libm.symbol("cos") {
                 Err(error) => fail!("Could not load function cos: {}", error),
-                Ok(cosine) => cosine
+                Ok(cosine) => mem::transmute::<*u8, _>(cosine)
             }
         };
 
diff --git a/src/libstd/io/fs.rs b/src/libstd/io/fs.rs
index 008be8ffaae..10dfec0f566 100644
--- a/src/libstd/io/fs.rs
+++ b/src/libstd/io/fs.rs
@@ -977,7 +977,9 @@ mod test {
         let result = File::open_mode(filename, Open, Read);
 
         error!(result, "couldn't open file");
-        error!(result, "no such file or directory");
+        if cfg!(unix) {
+            error!(result, "no such file or directory");
+        }
         error!(result, format!("path={}; mode=open; access=read", filename.display()));
     })
 
@@ -988,7 +990,9 @@ mod test {
         let result = unlink(filename);
 
         error!(result, "couldn't unlink path");
-        error!(result, "no such file or directory");
+        if cfg!(unix) {
+            error!(result, "no such file or directory");
+        }
         error!(result, format!("path={}", filename.display()));
     })
 
diff --git a/src/libstd/rt/backtrace.rs b/src/libstd/rt/backtrace.rs
index a1372b51d47..e2a963c5a87 100644
--- a/src/libstd/rt/backtrace.rs
+++ b/src/libstd/rt/backtrace.rs
@@ -873,12 +873,12 @@ mod imp {
             Err(..) => return Ok(()),
         };
 
-        macro_rules! sym( ($e:expr, $t:ident) => (
-            match unsafe { lib.symbol::<$t>($e) } {
-                Ok(f) => f,
+        macro_rules! sym( ($e:expr, $t:ident) => (unsafe {
+            match lib.symbol($e) {
+                Ok(f) => mem::transmute::<*u8, $t>(f),
                 Err(..) => return Ok(())
             }
-        ) )
+        }) )
 
         // Fetch the symbols necessary from dbghelp.dll
         let SymFromAddr = sym!("SymFromAddr", SymFromAddrFn);