In IRInterpreter.cpp, memory class there's this code:
Region Malloc (size_t size, size_t align)
{
lldb::DataBufferSP data(new lldb_private::DataBufferHeap(size, 0));
...
m_memory.push_back(AllocationSP(new Allocation(base, size, data)));
AllocationSP alloc = m_memory[index];
alloc->m_origin.GetScalar() = (unsigned long long)data->GetBytes();
This last statement presumes that that there's at least sizeof(unsigned
long long), but this code also gets triggered for booleans (1 byte), in
which case size is 1.
This works:
lldb::DataBufferSP data(new lldb_private::DataBufferHeap(size < 8 ? 8 :
size, 0));
But I'm not sure if it's the right fix.
Visual Studio freaks out when things write outside the bounds that were
allocated.
--
Carlo Kok
_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev