@@ -246,13 +246,25 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
246246 ) ;
247247 }
248248 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+ }
251257 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 )
253265 }
254266 } ;
255- self . write_scalar ( Scalar :: from_target_usize ( val, self ) , & dest) ?;
267+ self . write_scalar ( val, & dest) ?;
256268 }
257269
258270 ShallowInitBox ( ref operand, _) => {
0 commit comments