declaration. GCC 4.7 appears to get hopelessly confused by declaring
this function within a member function of a class template. Go figure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206152
91177308-0d34-0410-b5e6-
96231b3b80d8
void Deallocate(void *Slab, size_t Size) { Allocator.Deallocate(Slab); }
};
void Deallocate(void *Slab, size_t Size) { Allocator.Deallocate(Slab); }
};
+namespace detail {
+
+// We call out to an external function to actually print the message as the
+// printing code uses Allocator.h in its implementation.
+void printBumpPtrAllocatorStats(unsigned NumSlabs, size_t BytesAllocated,
+ size_t TotalMemory);
+} // End namespace detail.
+
/// \brief Allocate memory in an ever growing pool, as if by bump-pointer.
///
/// This isn't strictly a bump-pointer allocator as it uses backing slabs of
/// \brief Allocate memory in an ever growing pool, as if by bump-pointer.
///
/// This isn't strictly a bump-pointer allocator as it uses backing slabs of
}
void PrintStats() const {
}
void PrintStats() const {
- // We call out to an external function to actually print the message as the
- // printing code uses Allocator.h in its implementation.
- extern void printBumpPtrAllocatorStats(
- unsigned NumSlabs, size_t BytesAllocated, size_t TotalMemory);
-
- printBumpPtrAllocatorStats(Slabs.size(), BytesAllocated, getTotalMemory());
+ detail::printBumpPtrAllocatorStats(Slabs.size(), BytesAllocated,
+ getTotalMemory());
void printBumpPtrAllocatorStats(unsigned NumSlabs, size_t BytesAllocated,
size_t TotalMemory) {
errs() << "\nNumber of memory regions: " << NumSlabs << '\n'
void printBumpPtrAllocatorStats(unsigned NumSlabs, size_t BytesAllocated,
size_t TotalMemory) {
errs() << "\nNumber of memory regions: " << NumSlabs << '\n'
<< " (includes alignment, etc)\n";
}
<< " (includes alignment, etc)\n";
}
+} // End namespace detail.
+
void PrintRecyclerStats(size_t Size,
size_t Align,
size_t FreeListSize) {
void PrintRecyclerStats(size_t Size,
size_t Align,
size_t FreeListSize) {