@@ -140,7 +140,9 @@ impl<'tcx> CValue<'tcx> {
140
140
}
141
141
_ => unreachable ! ( "{:?}" , layout. ty) ,
142
142
} ;
143
- ptr. load ( fx, clif_ty, MemFlags :: new ( ) )
143
+ let mut flags = MemFlags :: new ( ) ;
144
+ flags. set_notrap ( ) ;
145
+ ptr. load ( fx, clif_ty, flags)
144
146
}
145
147
CValueInner :: ByVal ( value) => value,
146
148
CValueInner :: ByRef ( _, Some ( _) ) => bug ! ( "load_scalar for unsized value not allowed" ) ,
@@ -163,8 +165,10 @@ impl<'tcx> CValue<'tcx> {
163
165
let b_offset = scalar_pair_calculate_b_offset ( fx. tcx , a_scalar, b_scalar) ;
164
166
let clif_ty1 = scalar_to_clif_type ( fx. tcx , a_scalar. clone ( ) ) ;
165
167
let clif_ty2 = scalar_to_clif_type ( fx. tcx , b_scalar. clone ( ) ) ;
166
- let val1 = ptr. load ( fx, clif_ty1, MemFlags :: new ( ) ) ;
167
- let val2 = ptr. offset ( fx, b_offset) . load ( fx, clif_ty2, MemFlags :: new ( ) ) ;
168
+ let mut flags = MemFlags :: new ( ) ;
169
+ flags. set_notrap ( ) ;
170
+ let val1 = ptr. load ( fx, clif_ty1, flags) ;
171
+ let val2 = ptr. offset ( fx, b_offset) . load ( fx, clif_ty2, flags) ;
168
172
( val1, val2)
169
173
}
170
174
CValueInner :: ByRef ( _, Some ( _) ) => {
@@ -609,28 +613,28 @@ impl<'tcx> CPlace<'tcx> {
609
613
CPlaceInner :: Addr ( _, Some ( _) ) => bug ! ( "Can't write value to unsized place {:?}" , self ) ,
610
614
} ;
611
615
616
+ let mut flags = MemFlags :: new ( ) ;
617
+ flags. set_notrap ( ) ;
612
618
match from. layout ( ) . abi {
613
619
// FIXME make Abi::Vector work too
614
620
Abi :: Scalar ( _) => {
615
621
let val = from. load_scalar ( fx) ;
616
- to_ptr. store ( fx, val, MemFlags :: new ( ) ) ;
622
+ to_ptr. store ( fx, val, flags ) ;
617
623
return ;
618
624
}
619
625
Abi :: ScalarPair ( ref a_scalar, ref b_scalar) => {
620
626
let ( value, extra) = from. load_scalar_pair ( fx) ;
621
627
let b_offset = scalar_pair_calculate_b_offset ( fx. tcx , a_scalar, b_scalar) ;
622
- to_ptr. store ( fx, value, MemFlags :: new ( ) ) ;
623
- to_ptr
624
- . offset ( fx, b_offset)
625
- . store ( fx, extra, MemFlags :: new ( ) ) ;
628
+ to_ptr. store ( fx, value, flags) ;
629
+ to_ptr. offset ( fx, b_offset) . store ( fx, extra, flags) ;
626
630
return ;
627
631
}
628
632
_ => { }
629
633
}
630
634
631
635
match from. 0 {
632
636
CValueInner :: ByVal ( val) => {
633
- to_ptr. store ( fx, val, MemFlags :: new ( ) ) ;
637
+ to_ptr. store ( fx, val, flags ) ;
634
638
}
635
639
CValueInner :: ByValPair ( _, _) => {
636
640
bug ! (
0 commit comments