diff --git a/include/llvm/Support/Allocator.h b/include/llvm/Support/Allocator.h index 1c4b9c6552e..82c200abd06 100644 --- a/include/llvm/Support/Allocator.h +++ b/include/llvm/Support/Allocator.h @@ -78,29 +78,16 @@ public: // The rest of these methods are helpers that redirect to one of the above // core methods. - /// \brief Allocate space for one object without constructing it. - template T *Allocate() { - return static_cast(Allocate(sizeof(T), AlignOf::Alignment)); - } - - /// \brief Allocate space for an array of objects without constructing them. - template T *Allocate(size_t Num) { + /// \brief Allocate space for a sequence of objects without constructing them. + template T *Allocate(size_t Num = 1) { return static_cast(Allocate(Num * sizeof(T), AlignOf::Alignment)); } - /// \brief Deallocate space for one object without destroying it. + /// \brief Deallocate space for a sequence of objects without constructing them. template typename std::enable_if< !std::is_same::type, void>::value, void>::type - Deallocate(T *Ptr) { - Deallocate(static_cast(Ptr), sizeof(T)); - } - - /// \brief Allocate space for an array of objects without constructing them. - template - typename std::enable_if< - !std::is_same::type, void>::value, void>::type - Deallocate(T *Ptr, size_t Num) { + Deallocate(T *Ptr, size_t Num = 1) { Deallocate(static_cast(Ptr), Num * sizeof(T)); } };