Enable new[] on llvm::BumpPtrAllocator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159789 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dmitri Gribenko 2012-07-06 00:25:39 +00:00
parent 244a84ee57
commit 0da21789b3

View File

@ -239,4 +239,21 @@ inline void *operator new(size_t Size, llvm::BumpPtrAllocator &Allocator) {
inline void operator delete(void *, llvm::BumpPtrAllocator &) {}
inline void *operator new[](size_t Size, llvm::BumpPtrAllocator &Allocator) {
struct S {
char c;
union {
double D;
long double LD;
long long L;
void *P;
} x;
};
return Allocator.Allocate(Size, std::min((size_t)llvm::NextPowerOf2(Size),
offsetof(S, x)));
}
inline void operator delete[](void *Ptr, llvm::BumpPtrAllocator &C, size_t) {
}
#endif // LLVM_SUPPORT_ALLOCATOR_H