message: don't allocate for primvals
diff: @@ -219,8 +219,12 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
  (ptr, LvalueExtra::None)
  },
  Value::ByVal(PrimVal::Undef) => {
  - // FIXME: add some logic for when to not allocate
  + // FIXME: allocate in fewer cases
  + if self.ty_to_primval_kind(base_ty).is_ok() {
  + return Ok(base);
  + } else {
  (self.force_allocation(base)?.to_ptr(), LvalueExtra::None)
  + }
  },
  Value::ByVal(_) => {
  assert_eq!(field_index, 0, "ByVal can only have 1 non zst field with offset 0");
  