diff options
| author | Sean Callanan <scallanan@apple.com> | 2014-01-14 01:14:40 +0000 |
|---|---|---|
| committer | Sean Callanan <scallanan@apple.com> | 2014-01-14 01:14:40 +0000 |
| commit | 22ac610c4fc531e097eef84ef22fcd911896ae3c (patch) | |
| tree | bda5f10af41ca1db8176c124e39cf0706b5e4a70 /lldb/source/Expression | |
| parent | 26b944274e497b131aeab2512c445ae258826d88 (diff) | |
| download | bcm5719-llvm-22ac610c4fc531e097eef84ef22fcd911896ae3c.tar.gz bcm5719-llvm-22ac610c4fc531e097eef84ef22fcd911896ae3c.zip | |
Harden the Materializer logic against types that
don't know their bit alignment.
llvm-svn: 199173
Diffstat (limited to 'lldb/source/Expression')
| -rw-r--r-- | lldb/source/Expression/Materializer.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lldb/source/Expression/Materializer.cpp b/lldb/source/Expression/Materializer.cpp index 87caad677d4..90687c0739d 100644 --- a/lldb/source/Expression/Materializer.cpp +++ b/lldb/source/Expression/Materializer.cpp @@ -505,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); @@ -741,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); |

