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);


_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits

Reply via email to