message: [Core] Use GetAPInt instead of constructing APInts in place
  GetAPInt should be able to handle all cases. I have plans to generalize
  the float dumping logic and this makes it easier to do later.
diff: @@ -567,11 +567,13 @@ lldb::offset_t lldb_private::DumpDataExtractor(
  size_t item_bit_size = item_byte_size * 8;
  if (item_bit_size == ast->getTypeSize(ast->FloatTy)) {
  - llvm::APInt apint(item_bit_size,
  - DE.GetMaxU64(&offset, item_byte_size));
  + llvm::Optional<llvm::APInt> apint =
  + GetAPInt(DE, &offset, item_byte_size);
  + if (apint.hasValue()) {
  llvm::APFloat apfloat(ast->getFloatTypeSemantics(ast->FloatTy),
  - apint);
  + apint.getValue());
  apfloat.toString(sv, format_precision, format_max_padding);
  + }
  } else if (item_bit_size == ast->getTypeSize(ast->DoubleTy)) {
  llvm::Optional<llvm::APInt> apint =
  GetAPInt(DE, &offset, item_byte_size);
  @@ -595,11 +597,14 @@ lldb::offset_t lldb_private::DumpDataExtractor(
  apfloat.toString(sv, format_precision, format_max_padding);
  }
  } else if (item_bit_size == ast->getTypeSize(ast->HalfTy)) {
  - llvm::APInt apint(item_bit_size, DE.GetU16(&offset));
  + llvm::Optional<llvm::APInt> apint =
  + GetAPInt(DE, &offset, item_byte_size);
  + if (apint.hasValue()) {
  llvm::APFloat apfloat(ast->getFloatTypeSemantics(ast->HalfTy),
  - apint);
  + apint.getValue());
  apfloat.toString(sv, format_precision, format_max_padding);
  }
  + }
  if (!sv.empty()) {
  s->Printf("%*.*s", (int)sv.size(), (int)sv.size(), sv.data());
  