From: Chris Lattner Date: Tue, 6 May 2003 18:45:02 +0000 (+0000) Subject: Fix memory corruption problem X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6a4e6341f23934cd0a6d5883cc9a7518e54f70b4;p=oota-llvm.git Fix memory corruption problem git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6003 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Bytecode/Primitives.h b/include/llvm/Bytecode/Primitives.h index 31399a06580..b72bbf29677 100644 --- a/include/llvm/Bytecode/Primitives.h +++ b/include/llvm/Bytecode/Primitives.h @@ -163,7 +163,8 @@ static inline void output(unsigned i, std::deque &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);