Fix memory corruption problem

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6003 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-05-06 18:45:02 +00:00
parent 15b55e20cc
commit 6a4e6341f2

View File

@ -163,7 +163,8 @@ static inline void output(unsigned i, std::deque<unsigned char> &Out,
if (pos == -1)
Out.insert(Out.end(), (unsigned char*)&i, (unsigned char*)&i+4);
else
*(unsigned*)&Out[pos] = i;
// This cannot use block copy because deques are not guaranteed contiguous!
std::copy((unsigned char*)&i, 4+(unsigned char*)&i, Out.begin()+pos);
#else
if (pos == -1) { // Be endian clean, little endian is our friend
Out.push_back((unsigned char)i);