Remove allocation overflow warnings in some gcc versions in release mode

This commit is contained in:
Ion Gaztañaga
2019-04-30 18:03:40 +02:00
parent 24e420abe9
commit 4c6bea0bc7
3 changed files with 9 additions and 8 deletions
+2 -2
View File
@@ -180,7 +180,7 @@ class allocator
pointer allocate(size_type count, const void * hint= 0)
{
(void)hint;
if(count > this->max_size())
if(count > size_type(-1)/(2u*sizeof(T)))
boost::container::throw_bad_alloc();
void *ret = dlmalloc_malloc(count*sizeof(T));
if(!ret)
@@ -196,7 +196,7 @@ class allocator
//!Returns the maximum number of elements that could be allocated.
//!Never throws
BOOST_CONTAINER_FORCEINLINE size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
{ return size_type(-1)/sizeof(T); }
{ return size_type(-1)/(2u*sizeof(T)); }
//!Swaps two allocators, does nothing
//!because this allocator is stateless