Fixing container/pointer bug in remote-lli found by ASan

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191976 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Andrew Kaylor
2013-10-04 20:09:36 +00:00
parent e7099f6ff4
commit e3fd646e17
2 changed files with 29 additions and 28 deletions

View File

@@ -30,6 +30,7 @@ class RemoteMemoryManager : public JITMemoryManager {
public:
// Notice that this structure takes ownership of the memory allocated.
struct Allocation {
Allocation() {}
Allocation(sys::MemoryBlock mb, unsigned a, bool code)
: MB(mb), Alignment(a), IsCode(code) {}
@@ -48,11 +49,11 @@ private:
// have allocated locally but have not yet remapped for the remote target.
// When we receive notification of a completed module load, we will map
// these sections into the remote target.
SmallVector<const Allocation *, 2> UnmappedSections;
SmallVector<Allocation, 2> UnmappedSections;
// This map tracks the sections we have remapped for the remote target
// but have not yet copied to the target.
DenseMap<uint64_t, const Allocation *> MappedSections;
DenseMap<uint64_t, Allocation> MappedSections;
// FIXME: This is part of a work around to keep sections near one another
// when MCJIT performs relocations after code emission but before