@@ -23,11 +23,7 @@ use super::{
23
23
mod caller_location;
24
24
mod type_name;
25
25
26
- fn numeric_intrinsic < ' tcx , Tag > (
27
- name : Symbol ,
28
- bits : u128 ,
29
- kind : Primitive ,
30
- ) -> InterpResult < ' tcx , Scalar < Tag > > {
26
+ fn numeric_intrinsic < Tag > ( name : Symbol , bits : u128 , kind : Primitive ) -> Scalar < Tag > {
31
27
let size = match kind {
32
28
Primitive :: Int ( integer, _) => integer. size ( ) ,
33
29
_ => bug ! ( "invalid `{}` argument: {:?}" , name, bits) ,
@@ -41,7 +37,7 @@ fn numeric_intrinsic<'tcx, Tag>(
41
37
sym:: bitreverse => ( bits << extra) . reverse_bits ( ) ,
42
38
_ => bug ! ( "not a numeric intrinsic: {}" , name) ,
43
39
} ;
44
- Ok ( Scalar :: from_uint ( bits_out, size) )
40
+ Scalar :: from_uint ( bits_out, size)
45
41
}
46
42
47
43
/// The logic for all nullary intrinsics is implemented here. These intrinsics don't get evaluated
@@ -208,7 +204,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
208
204
if nonzero && bits == 0 {
209
205
throw_ub_format ! ( "`{}_nonzero` called on 0" , intrinsic_name) ;
210
206
}
211
- let out_val = numeric_intrinsic ( intrinsic_name, bits, kind) ? ;
207
+ let out_val = numeric_intrinsic ( intrinsic_name, bits, kind) ;
212
208
self . write_scalar ( out_val, dest) ?;
213
209
}
214
210
sym:: add_with_overflow | sym:: sub_with_overflow | sym:: mul_with_overflow => {
0 commit comments