diff options
Diffstat (limited to 'contrib/llvm/tools/lldb/source/Expression/Materializer.cpp')
-rw-r--r-- | contrib/llvm/tools/lldb/source/Expression/Materializer.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/contrib/llvm/tools/lldb/source/Expression/Materializer.cpp b/contrib/llvm/tools/lldb/source/Expression/Materializer.cpp index 8731fbe..90687c0 100644 --- a/contrib/llvm/tools/lldb/source/Expression/Materializer.cpp +++ b/contrib/llvm/tools/lldb/source/Expression/Materializer.cpp @@ -461,7 +461,9 @@ public: } else { - lldb::addr_t addr_of_valobj = valobj_sp->GetAddressOf(); + AddressType address_type = eAddressTypeInvalid; + const bool scalar_is_load_address = false; + lldb::addr_t addr_of_valobj = valobj_sp->GetAddressOf(scalar_is_load_address, &address_type); if (addr_of_valobj != LLDB_INVALID_ADDRESS) { Error write_error; @@ -503,6 +505,9 @@ public: size_t bit_align = m_variable_sp->GetType()->GetClangLayoutType().GetTypeBitAlign(); size_t byte_align = (bit_align + 7) / 8; + if (!byte_align) + byte_align = 1; + Error alloc_error; m_temporary_allocation = map.Malloc(data.GetByteSize(), byte_align, lldb::ePermissionsReadable | lldb::ePermissionsWritable, IRMemoryMap::eAllocationPolicyMirror, alloc_error); @@ -739,6 +744,9 @@ public: size_t bit_align = m_type.GetTypeBitAlign(); size_t byte_align = (bit_align + 7) / 8; + if (!byte_align) + byte_align = 1; + Error alloc_error; m_temporary_allocation = map.Malloc(byte_size, byte_align, lldb::ePermissionsReadable | lldb::ePermissionsWritable, IRMemoryMap::eAllocationPolicyMirror, alloc_error); |