about summary refs log tree commit diff
path: root/src/libcoretest
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-07-18 18:09:25 -0700
committerGitHub <noreply@github.com>2016-07-18 18:09:25 -0700
commit8052f73d7b53d55781e49fc36e109312293a31d5 (patch)
tree7bbbee90887b76f48d683362081e511a8be11363 /src/libcoretest
parentbbfcb471db0799a7d92d62e66cf44bbd68051675 (diff)
parent9c5039a128ba2fa69eb979c314f158aa680ff6a2 (diff)
downloadrust-8052f73d7b53d55781e49fc36e109312293a31d5.tar.gz
rust-8052f73d7b53d55781e49fc36e109312293a31d5.zip
Auto merge of #34879 - petrochenkov:fnptr, r=alexcrichton
Implement traits for variadic function pointers

Closes https://github.com/rust-lang/rust/issues/34874
cc https://github.com/rust-lang/rust/pull/28268

r? @alexcrichton
Diffstat (limited to 'src/libcoretest')
-rw-r--r--src/libcoretest/ptr.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libcoretest/ptr.rs b/src/libcoretest/ptr.rs
index 343db93d4a9..e0a9f4e5d42 100644
--- a/src/libcoretest/ptr.rs
+++ b/src/libcoretest/ptr.rs
@@ -171,3 +171,17 @@ fn test_unsized_unique() {
     let zs: &mut [i32] = &mut [1, 2, 3];
     assert!(ys == zs);
 }
+
+#[test]
+fn test_variadic_fnptr() {
+    use core::hash::{Hash, SipHasher};
+    extern "C" {
+        fn printf(_: *const u8, ...);
+    }
+    let p: unsafe extern "C" fn(*const u8, ...) = printf;
+    let q = p.clone();
+    assert_eq!(p, q);
+    assert!(!(p < q));
+    let mut s = SipHasher::new();
+    assert_eq!(p.hash(&mut s), q.hash(&mut s));
+}