message: Clarify pattern matching
diff: @@ -676,13 +676,14 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
  // Check alignment and non-NULLness.
  let (_, align) = self.size_and_align_of_dst(ty, val)?;
  - if ptr.is_ptr() {
  - let ptr = ptr.to_ptr()?;
  + match ptr {
  + PrimVal::Ptr(ptr) => {
  if !ptr.points_to_zst() { // assume ZST pointer to be always fully alignd (and anyway ZST pointers are going to disappear soon)
  self.memory.check_align(ptr, align, 0)?;
  }
  - } else {
  - let v = (ptr.to_u128()? % (1 << self.memory.pointer_size())) as u64;
  + }
  + PrimVal::Bytes(bytes) => {
  + let v = ((bytes as u128) % (1 << self.memory.pointer_size())) as u64;
  if v == 0 {
  return Err(EvalError::InvalidNullPointerUsage);
  }
  @@ -693,6 +694,10 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
  });
  }
  }
  + PrimVal::Undef => {
  + return Err(EvalError::ReadUndefBytes);
  + }
  + }
  self.write_value(val, dest, dest_ty)?;
  }
  