@@ -246,13 +246,25 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
246
246
) ;
247
247
}
248
248
let val = match null_op {
249
- mir:: NullOp :: SizeOf => layout. size . bytes ( ) ,
250
- mir:: NullOp :: AlignOf => layout. align . abi . bytes ( ) ,
249
+ mir:: NullOp :: SizeOf => {
250
+ let val = layout. size . bytes ( ) ;
251
+ Scalar :: from_target_usize ( val, self )
252
+ }
253
+ mir:: NullOp :: AlignOf => {
254
+ let val = layout. align . abi . bytes ( ) ;
255
+ Scalar :: from_target_usize ( val, self )
256
+ }
251
257
mir:: NullOp :: OffsetOf ( fields) => {
252
- layout. offset_of_subfield ( self , fields. iter ( ) ) . bytes ( )
258
+ let val = layout. offset_of_subfield ( self , fields. iter ( ) ) . bytes ( ) ;
259
+ Scalar :: from_target_usize ( val, self )
260
+ }
261
+ mir:: NullOp :: DebugAssertions => {
262
+ // The checks hidden behind this are always better done by the interpreter
263
+ // itself, because it knows the runtime state better.
264
+ Scalar :: from_bool ( false )
253
265
}
254
266
} ;
255
- self . write_scalar ( Scalar :: from_target_usize ( val, self ) , & dest) ?;
267
+ self . write_scalar ( val, & dest) ?;
256
268
}
257
269
258
270
ShallowInitBox ( ref operand, _) => {
0 commit comments