[Lldb-commits] [lldb] r199173 - Harden the Materializer logic against types that

Sean Callanan scallanan at apple.com
Mon Jan 13 17:14:40 PST 2014


Author: spyffe
Date: Mon Jan 13 19:14:40 2014
New Revision: 199173

URL: http://llvm.org/viewvc/llvm-project?rev=199173&view=rev
Log:
Harden the Materializer logic against types that
don't know their bit alignment.

Modified:
    lldb/trunk/source/Expression/Materializer.cpp

Modified: lldb/trunk/source/Expression/Materializer.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/Materializer.cpp?rev=199173&r1=199172&r2=199173&view=diff
==============================================================================
--- lldb/trunk/source/Expression/Materializer.cpp (original)
+++ lldb/trunk/source/Expression/Materializer.cpp Mon Jan 13 19:14:40 2014
@@ -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);





More information about the lldb-commits mailing list