@@ -200,43 +200,67 @@ mod tests {
200
200
fn __fixsfsi( f: extern fn ( f32 ) -> i32 ,
201
201
a: F32 )
202
202
-> Option <I32 > {
203
- Some ( I32 ( f( a. 0 ) ) )
203
+ if a. 0 > ( i32 :: max_value( ) as f32 ) ||
204
+ a. 0 < ( i32 :: min_value( ) as f32 ) || a. 0 . is_nan( ) {
205
+ None
206
+ } else { Some ( I32 ( f( a. 0 ) ) ) }
204
207
}
205
208
fn __fixsfdi( f: extern fn ( f32 ) -> i64 ,
206
209
a: F32 )
207
210
-> Option <I64 > {
208
- Some ( I64 ( f( a. 0 ) ) )
211
+ if a. 0 > ( i64 :: max_value( ) as f32 ) ||
212
+ a. 0 < ( i64 :: min_value( ) as f32 ) || a. 0 . is_nan( ) {
213
+ None
214
+ } else { Some ( I64 ( f( a. 0 ) ) ) }
209
215
}
210
216
fn __fixdfsi( f: extern fn ( f64 ) -> i32 ,
211
217
a: F64 )
212
218
-> Option <I32 > {
213
- Some ( I32 ( f( a. 0 ) ) )
219
+ if a. 0 > ( i32 :: max_value( ) as f64 ) ||
220
+ a. 0 < ( i32 :: min_value( ) as f64 ) || a. 0 . is_nan( ) {
221
+ None
222
+ } else { Some ( I32 ( f( a. 0 ) ) ) }
214
223
}
215
224
fn __fixdfdi( f: extern fn ( f64 ) -> i64 ,
216
225
a: F64 )
217
226
-> Option <I64 > {
218
- Some ( I64 ( f( a. 0 ) ) )
227
+ if a. 0 > ( i64 :: max_value( ) as f64 ) ||
228
+ a. 0 < ( i64 :: min_value( ) as f64 ) || a. 0 . is_nan( ) {
229
+ None
230
+ } else { Some ( I64 ( f( a. 0 ) ) ) }
219
231
}
220
232
221
233
fn __fixunssfsi( f: extern fn ( f32 ) -> u32 ,
222
234
a: F32 )
223
235
-> Option <U32 > {
224
- Some ( U32 ( f( a. 0 ) ) )
236
+ if a. 0 > ( u32 :: max_value( ) as f32 ) ||
237
+ a. 0 < ( u32 :: min_value( ) as f32 ) || a. 0 . is_nan( ) {
238
+ None
239
+ } else { Some ( U32 ( f( a. 0 ) ) ) }
225
240
}
226
241
fn __fixunssfdi( f: extern fn ( f32 ) -> u64 ,
227
242
a: F32 )
228
243
-> Option <U64 > {
229
- Some ( U64 ( f( a. 0 ) ) )
244
+ if a. 0 > ( u64 :: max_value( ) as f32 ) ||
245
+ a. 0 < ( u64 :: min_value( ) as f32 ) || a. 0 . is_nan( ) {
246
+ None
247
+ } else { Some ( U64 ( f( a. 0 ) ) ) }
230
248
}
231
249
fn __fixunsdfsi( f: extern fn ( f64 ) -> u32 ,
232
250
a: F64 )
233
251
-> Option <U32 > {
234
- Some ( U32 ( f( a. 0 ) ) )
252
+ if a. 0 > ( u32 :: max_value( ) as f64 ) ||
253
+ a. 0 < ( u32 :: min_value( ) as f64 ) || a. 0 . is_nan( ) {
254
+ None
255
+ } else { Some ( U32 ( f( a. 0 ) ) ) }
235
256
}
236
257
fn __fixunsdfdi( f: extern fn ( f64 ) -> u64 ,
237
258
a: F64 )
238
259
-> Option <U64 > {
239
- Some ( U64 ( f( a. 0 ) ) )
260
+ if a. 0 <= ( u64 :: max_value( ) as f64 ) ||
261
+ a. 0 >= ( u64 :: min_value( ) as f64 ) || a. 0 . is_nan( ) {
262
+ None
263
+ } else { Some ( U64 ( f( a. 0 ) ) ) }
240
264
}
241
265
}
242
266
}
0 commit comments