Importing rustc-1.52.1
Change-Id: I3598a97301b4b2e71385e5a519f6d2ad946548b6
diff --git a/src/llvm-project/lldb/source/Expression/Materializer.cpp b/src/llvm-project/lldb/source/Expression/Materializer.cpp
index f334620..a93c127 100644
--- a/src/llvm-project/lldb/source/Expression/Materializer.cpp
+++ b/src/llvm-project/lldb/source/Expression/Materializer.cpp
@@ -67,7 +67,7 @@
const bool zero_memory = false;
lldb::addr_t mem = map.Malloc(
- m_persistent_variable_sp->GetByteSize(), 8,
+ m_persistent_variable_sp->GetByteSize().getValueOr(0), 8,
lldb::ePermissionsReadable | lldb::ePermissionsWritable,
IRMemoryMap::eAllocationPolicyMirror, zero_memory, allocate_error);
@@ -106,7 +106,8 @@
Status write_error;
map.WriteMemory(mem, m_persistent_variable_sp->GetValueBytes(),
- m_persistent_variable_sp->GetByteSize(), write_error);
+ m_persistent_variable_sp->GetByteSize().getValueOr(0),
+ write_error);
if (!write_error.Success()) {
err.SetErrorStringWithFormat(
@@ -234,7 +235,7 @@
map.GetBestExecutionContextScope(),
m_persistent_variable_sp.get()->GetCompilerType(),
m_persistent_variable_sp->GetName(), location, eAddressTypeLoad,
- m_persistent_variable_sp->GetByteSize());
+ m_persistent_variable_sp->GetByteSize().getValueOr(0));
if (frame_top != LLDB_INVALID_ADDRESS &&
frame_bottom != LLDB_INVALID_ADDRESS && location >= frame_bottom &&
@@ -279,7 +280,8 @@
LLDB_LOGF(log, "Dematerializing %s from 0x%" PRIx64 " (size = %llu)",
m_persistent_variable_sp->GetName().GetCString(),
(uint64_t)mem,
- (unsigned long long)m_persistent_variable_sp->GetByteSize());
+ (unsigned long long)m_persistent_variable_sp->GetByteSize()
+ .getValueOr(0));
// Read the contents of the spare memory area
@@ -288,7 +290,7 @@
Status read_error;
map.ReadMemory(m_persistent_variable_sp->GetValueBytes(), mem,
- m_persistent_variable_sp->GetByteSize(), read_error);
+ m_persistent_variable_sp->GetByteSize().getValueOr(0), read_error);
if (!read_error.Success()) {
err.SetErrorStringWithFormat(
@@ -369,10 +371,11 @@
if (!err.Success()) {
dump_stream.Printf(" <could not be read>\n");
} else {
- DataBufferHeap data(m_persistent_variable_sp->GetByteSize(), 0);
+ DataBufferHeap data(
+ m_persistent_variable_sp->GetByteSize().getValueOr(0), 0);
map.ReadMemory(data.GetBytes(), target_address,
- m_persistent_variable_sp->GetByteSize(), err);
+ m_persistent_variable_sp->GetByteSize().getValueOr(0), err);
if (!err.Success()) {
dump_stream.Printf(" <could not be read>\n");
@@ -514,7 +517,7 @@
return;
}
- if (data.GetByteSize() < m_variable_sp->GetType()->GetByteSize()) {
+ if (data.GetByteSize() < m_variable_sp->GetType()->GetByteSize(scope)) {
if (data.GetByteSize() == 0 &&
!m_variable_sp->LocationExpression().IsValid()) {
err.SetErrorStringWithFormat("the variable '%s' has no location, "
@@ -525,7 +528,7 @@
"size of variable %s (%" PRIu64
") is larger than the ValueObject's size (%" PRIu64 ")",
m_variable_sp->GetName().AsCString(),
- m_variable_sp->GetType()->GetByteSize().getValueOr(0),
+ m_variable_sp->GetType()->GetByteSize(scope).getValueOr(0),
data.GetByteSize());
}
return;
@@ -621,8 +624,8 @@
Status extract_error;
- map.GetMemoryData(data, m_temporary_allocation, valobj_sp->GetByteSize(),
- extract_error);
+ map.GetMemoryData(data, m_temporary_allocation,
+ valobj_sp->GetByteSize().getValueOr(0), extract_error);
if (!extract_error.Success()) {
err.SetErrorStringWithFormat("couldn't get the data for variable %s",
@@ -797,7 +800,7 @@
llvm::Optional<size_t> opt_bit_align = m_type.GetTypeBitAlign(exe_scope);
if (!opt_bit_align) {
- err.SetErrorStringWithFormat("can't get the type alignment");
+ err.SetErrorString("can't get the type alignment");
return;
}
@@ -919,7 +922,7 @@
ret->ValueUpdated();
- const size_t pvar_byte_size = ret->GetByteSize();
+ const size_t pvar_byte_size = ret->GetByteSize().getValueOr(0);
uint8_t *pvar_data = ret->GetValueBytes();
map.ReadMemory(pvar_data, address, pvar_byte_size, read_error);
@@ -1279,9 +1282,8 @@
m_register_contents.reset();
- RegisterValue register_value(
- const_cast<uint8_t *>(register_data.GetDataStart()),
- register_data.GetByteSize(), register_data.GetByteOrder());
+ RegisterValue register_value(register_data.GetData(),
+ register_data.GetByteOrder());
if (!reg_context_sp->WriteRegister(&m_register_info, register_value)) {
err.SetErrorStringWithFormat("couldn't write the value of register %s",