@@ -105,14 +105,21 @@ test_transparent!(zst, Zst);
105
105
test_transparent ! ( unit, ( ) ) ;
106
106
test_transparent ! ( pair, ( i32 , f32 ) ) ; // mixing in some floats since they often get special treatment
107
107
test_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
109
108
test_transparent ! ( tuple, ( i32 , f32 , i64 , f64 ) ) ;
110
109
test_transparent ! ( empty_array, [ u32 ; 0 ] ) ;
111
110
test_transparent ! ( empty_1zst_array, [ u8 ; 0 ] ) ;
112
111
test_transparent ! ( small_array, [ i32 ; 2 ] ) ; // chosen to fit into 64bit
113
112
test_transparent ! ( large_array, [ i32 ; 16 ] ) ;
114
113
test_transparent ! ( enum_, Option <i32 >) ;
115
114
test_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
+ }
116
123
117
124
// RFC 3391 <https://rust-lang.github.io/rfcs/3391-result_ffi_guarantees.html>.
118
125
macro_rules! test_nonnull {
0 commit comments