message: avoid integer overflow in ptr-to-int cast
diff: @@ -4,7 +4,8 @@ use std::cmp::max;
  use rand::Rng;
  -use rustc_mir::interpret::{AllocId, Pointer, InterpResult, Memory, AllocCheck};
  +use rustc::ty::layout::HasDataLayout;
  +use rustc_mir::interpret::{AllocId, Pointer, InterpResult, Memory, AllocCheck, PointerArithmetic};
  use rustc_target::abi::Size;
  use crate::{Evaluator, Tag, STACK_ADDR};
  @@ -109,7 +110,9 @@ impl<'mir, 'tcx> GlobalState {
  };
  debug_assert_eq!(base_addr % align.bytes(), 0); // sanity check
  - Ok(base_addr + ptr.offset.bytes())
  + // Add offset with the right kind of pointer-overflowing arithmetic.
  + let dl = memory.data_layout();
  + Ok(dl.overflowing_offset(base_addr, ptr.offset.bytes()).0)
  }
  /// Shifts `addr` to make it aligned with `align` by rounding `addr` to the smallest multiple
  