diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2016-07-17 00:15:15 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2016-07-17 10:21:07 +0300 |
| commit | 9c5039a128ba2fa69eb979c314f158aa680ff6a2 (patch) | |
| tree | 3bb41cc6e8bcf8571d5300c2918615fd9434d5af /src/libcoretest/ptr.rs | |
| parent | 103e5c9b37d6cdc4552b353cdf3fd2772dae760c (diff) | |
| download | rust-9c5039a128ba2fa69eb979c314f158aa680ff6a2.tar.gz rust-9c5039a128ba2fa69eb979c314f158aa680ff6a2.zip | |
Implement traits for variadic function pointers
Diffstat (limited to 'src/libcoretest/ptr.rs')
| -rw-r--r-- | src/libcoretest/ptr.rs | 14 |
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)); +} |
