@@ -105,14 +105,21 @@ test_transparent!(zst, Zst);
105105test_transparent ! ( unit, ( ) ) ;
106106test_transparent ! ( pair, ( i32 , f32 ) ) ; // mixing in some floats since they often get special treatment
107107test_transparent ! ( triple, ( i8 , i16 , f32 ) ) ; // chosen to fit into 64bit
108- test_transparent ! ( float_triple, ( f64 , f64 , f64 ) ) ; // hits a bug in our MIPS64 adjustments
109108test_transparent ! ( tuple, ( i32 , f32 , i64 , f64 ) ) ;
110109test_transparent ! ( empty_array, [ u32 ; 0 ] ) ;
111110test_transparent ! ( empty_1zst_array, [ u8 ; 0 ] ) ;
112111test_transparent ! ( small_array, [ i32 ; 2 ] ) ; // chosen to fit into 64bit
113112test_transparent ! ( large_array, [ i32 ; 16 ] ) ;
114113test_transparent ! ( enum_, Option <i32 >) ;
115114test_transparent ! ( enum_niched, Option <& ' static i32 >) ;
115+ // Pure-float types that are not ScalarPair seem to be tricky.
116+ // FIXME: <https://github.com/rust-lang/rust/issues/115664>
117+ #[ cfg( not( target_arch = "aarch64" ) ) ]
118+ mod tricky {
119+ use super :: * ;
120+ test_transparent ! ( triple_f32, ( f32 , f32 , f32 ) ) ;
121+ test_transparent ! ( triple_f64, ( f64 , f64 , f64 ) ) ;
122+ }
116123
117124// RFC 3391 <https://rust-lang.github.io/rfcs/3391-result_ffi_guarantees.html>.
118125macro_rules! test_nonnull {
0 commit comments