File tree Expand file tree Collapse file tree 3 files changed +9
-26
lines changed
compiler/rustc_codegen_cranelift/patches Expand file tree Collapse file tree 3 files changed +9
-26
lines changed Original file line number Diff line number Diff line change @@ -39,26 +39,6 @@ index a35897e..f0bf645 100644
3939
4040 pub fn decode_finite<T: DecodableFloat>(v: T) -> Decoded {
4141 match decode(v).1 {
42- diff --git a/library/core/tests/ptr.rs b/library/core/tests/ptr.rs
43- index 1a6be3a..42dbd59 100644
44- --- a/library/core/tests/ptr.rs
45- +++ b/library/core/tests/ptr.rs
46- @@ -250,6 +250,7 @@ fn test_unsized_nonnull() {
47- };
48- }
49-
50- + /*
51- #[test]
52- #[allow(warnings)]
53- // Have a symbol for the test below. It doesn’t need to be an actual variadic function, match the
54- @@ -277,6 +277,7 @@ pub fn test_variadic_fnptr() {
55- let mut s = SipHasher::new();
56- assert_eq!(p.hash(&mut s), q.hash(&mut s));
57- }
58- + */
59-
60- #[test]
61- fn write_unaligned_drop() {
6242diff --git a/library/core/tests/slice.rs b/library/core/tests/slice.rs
6343index 6609bc3..241b497 100644
6444--- a/library/core/tests/slice.rs
Original file line number Diff line number Diff line change 2323#![ feature( const_ptr_offset) ]
2424#![ feature( const_trait_impl) ]
2525#![ feature( const_likely) ]
26+ #![ feature( core_ffi_c) ]
2627#![ feature( core_intrinsics) ]
2728#![ feature( core_private_bignum) ]
2829#![ feature( core_private_diy_float) ]
Original file line number Diff line number Diff line change @@ -289,16 +289,18 @@ fn test_const_nonnull_new() {
289289}
290290
291291#[ test]
292- #[ allow( warnings) ]
293- // Have a symbol for the test below. It doesn’t need to be an actual variadic function, match the
294- // ABI, or even point to an actual executable code, because the function itself is never invoked.
295- #[ no_mangle]
292+ #[ cfg( any( unix, windows) ) ] // printf may not be available on other platforms
293+ #[ allow( deprecated) ] // For SipHasher
296294pub fn test_variadic_fnptr ( ) {
295+ use core:: ffi;
297296 use core:: hash:: { Hash , SipHasher } ;
298297 extern "C" {
299- fn test_variadic_fnptr ( _: u64 , ...) -> f64 ;
298+ // This needs to use the correct function signature even though it isn't called as some
299+ // codegen backends make it UB to declare a function with multiple conflicting signatures
300+ // (like LLVM) while others straight up return an error (like Cranelift).
301+ fn printf ( _: * const ffi:: c_char , ...) -> ffi:: c_int ;
300302 }
301- let p: unsafe extern "C" fn ( u64 , ...) -> f64 = test_variadic_fnptr ;
303+ let p: unsafe extern "C" fn ( * const ffi :: c_char , ...) -> ffi :: c_int = printf ;
302304 let q = p. clone ( ) ;
303305 assert_eq ! ( p, q) ;
304306 assert ! ( !( p < q) ) ;
You can’t perform that action at this time.
0 commit comments